79 lines
2.0 KiB
PHP
79 lines
2.0 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;
|
|
}
|
|
} |