【发布时间】:2021-10-08 17:38:32
【问题描述】:
我在我的一项任务中使用 redis 进行缓存。为此,我正在使用 CI 默认 redis 库。
现在库的问题在于它有一些特定的方法集,用于设置、获取、删除、递增和递减 redis 键和值。
我想增加 redis 的附加功能,如 lpush、rpush、lrem、lrange 等。 所以为了实现这一点,我正在尝试扩展默认的 CI redis 类。我把它放在 application/libraries/driver/cache_redis_extended.php 中。 我这个类的代码如下。
<?php defined('BASEPATH') OR exit('No direct script access allowed');
class Cache_redis_extended extends CI_Cache_redis
{
function __construct()
{
parent::self;
}
public function rpush($list, $data)
{
$push = $this->_redis->multi(Redis::PIPELINE);
return $push->rpush($list, json_encode($data));
}
public function lrem($list, $data)
{
if((is_string($data) && (is_object(json_decode($data)) || is_array(json_decode($data))))) {
$data = $data;
}else{
json_encode($data);
}
return $this->_redis->lrem($list,-1, $data);
}
public function __destruct()
{
if ($this->_redis)
{
$this->_redis->close();
}
}
}
在我的模型中,我按如下方式加载此类
$CI->load->driver('cache', array('adapter' => 'redis'));
但我收到此错误:
无法加载请求的类:cache_redis_extended
感谢您对此问题的任何帮助。
【问题讨论】:
标签: codeigniter caching redis