用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3040|回复: 9
收起左侧

[内核] redis出错:drivers/Cache_redis.php

[复制链接]
发表于 2018-8-26 11:30:24 | 显示全部楼层 |阅读模式
CI3.1.9
redis正常运行,按手册http://codeigniter.org.cn/user_g ... ghlight=redis#redis  写的简单代码。

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

出错:
A PHP Error was encountered
Severity: Error
Message: Call to a member function set() on null
Filename: drivers/Cache_redis.php
Line Number: 193



发表于 2018-8-26 14:59:59 | 显示全部楼层
有没有装 php redis 扩展?
 楼主| 发表于 2018-8-26 15:59:01 | 显示全部楼层
Hex 发表于 2018-8-26 14:59
有没有装 php redis 扩展?

github找一个很旧的类库处理了,扩展没问题的
发表于 2018-8-26 18:04:51 | 显示全部楼层
smartweb 发表于 2018-8-26 15:59
github找一个很旧的类库处理了,扩展没问题的

那到底是什么问题呢?
 楼主| 发表于 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还是出错

发表于 2018-8-28 00:28:41 | 显示全部楼层
smartweb 发表于 2018-8-27 21:05
A PHP Error was encountered
Severity: Error

看起来是 $this->_redis 没有实例化,这个报错看起来和参数并没有关系,你可以看看为什么你的 _redis 是 null?
 楼主| 发表于 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这步没做,这样修改不方便,我还是用第三方的算了
发表于 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 文件没装?
发表于 2018-9-15 22:56:40 | 显示全部楼层
你是否在application里面重写了底层的cache驱动器?

本版积分规则