smartweb 发表于 2018-8-26 11:30:24

redis出错:drivers/Cache_redis.php

CI3.1.9
redis正常运行,按手册http://codeigniter.org.cn/user_guide/libraries/caching.html?highlight=redis#redis写的简单代码。

$this->load->driver('cache'); $this->cache->redis->save('foo', 'bar', 10);

出错:
A PHP Error was encounteredSeverity: ErrorMessage: Call to a member function set() on nullFilename: drivers/Cache_redis.phpLine Number: 193


Hex 发表于 2018-8-26 14:59:59

有没有装 php redis 扩展?

smartweb 发表于 2018-8-26 15:59:01

Hex 发表于 2018-8-26 14:59
有没有装 php redis 扩展?

github找一个很旧的类库处理了,扩展没问题的

Hex 发表于 2018-8-26 18:04:51

smartweb 发表于 2018-8-26 15:59
github找一个很旧的类库处理了,扩展没问题的

那到底是什么问题呢?

smartweb 发表于 2018-8-27 21:05:15

Hex 发表于 2018-8-26 18:04
那到底是什么问题呢?

A PHP Error was encountered
Severity: Error

Message: Call to a member function set() on null

Filename: drivers/Cache_redis.php

Line Number: 193


193行是return $this->_redis->set($id, $data, $ttl);
我逐个打印$id,$data和$ttl都有值
我用其它的rdis类,只能用set($id,$data),但我去掉$ttl还是出错

Hex 发表于 2018-8-28 00:28:41

smartweb 发表于 2018-8-27 21:05
A PHP Error was encountered
Severity: Error



看起来是 $this->_redis 没有实例化,这个报错看起来和参数并没有关系,你可以看看为什么你的 _redis 是 null?

smartweb 发表于 2018-8-28 08:34:51

Hex 发表于 2018-8-28 00:28
看起来是 $this->_redis 没有实例化,这个报错看起来和参数并没有关系,你可以看看为什么你的 _redis 是...

$this->load->driver('cache',array('adapter'=>'redis','backup'=>'file'));
$this->cache->save('key5','xx5',10000);
echo $this->cache->get('key5');//xx5
有发现文件在application\cache
应该是phpredis 扩展 修改php.ini这步没做,这样修改不方便,我还是用第三方的算了

Hex 发表于 2018-8-28 17:39:17

smartweb 发表于 2018-8-28 08:34
$this->load->driver('cache',array('adapter'=>'redis','backup'=>'file'));
$this->cache->save('key5' ...

那就是没有安装 php redis 扩展?就是 .so 文件没装?

zhuxiaoyu 发表于 2018-9-15 22:56:40

你是否在application里面重写了底层的cache驱动器?
页: [1]
查看完整版本: redis出错:drivers/Cache_redis.php