Files
spacestation/admin/controllers/Cache.php
T
2024-05-26 16:00:30 +08:00

79 lines
2.1 KiB
PHP

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* Created by PhpStorm.
* User: xuxb
* Date: 2019/12/23
* Time: 10:51
*/
class Cache extends CI_Controller{
/**
* @param $method
* @param string $version
*/
function _remap($method, $version = ''){
$segments = array_slice($this->uri->segment_array(), 2);
if('redis' == $method){
$this->get_redis($segments);
}
}
function get_redis($params){
list($method, $key, $p1, $p2, $p3) = $params;
if(!$key){
exit('key is null');
}
$r = &load_cache('redis');
$redis = $r->redis();
switch(strtolower($method)){
case 'keys':
$ret = $redis->keys('*'.$key.'*');
break;
case 'get':
$ret = $redis->get($key);
break;
case 'smembers':
$ret = $redis->sMembers($key);
break;
case 'sismember':
$ret = $redis->sIsMember($key, $p1);
break;
case 'scard':
$ret = $redis->sCard($key);
break;
case 'zrange':
$ret = $redis->zRange($key, $p1, $p2, true);
break;
case 'zrangebyscore':
$ret = $redis->zRangeByScore($key, $p1, $p2);
break;
case 'llen':
$ret = $redis->lLen($key);
break;
case 'lindex':
$ret = $redis->lIndex($key, $p1);
break;
case 'lrange':
$ret = $redis->lRange($key, $p1, $p2);
break;
default:
exit("method forbidden");
}
if(is_string($ret)){
$json = json_decode($ret, true);
json_last_error() == JSON_ERROR_NONE && $ret = $json;
}
$data = array('params' => $params, 'ret' => $ret);
echo json_encode($data);
exit;
}
}