为了账号安全,请及时绑定邮箱和手机立即绑定

CodeIgniter CI3.0怎么使用redis?

CodeIgniter CI3.0怎么使用redis?

慕神8447489 2018-07-27 18:18:07
config已经配置好了,现在只会在每个method中这么使用,// 连接本地的 Redis 服务$redis = new Redis(); $redis->connect('127.0.0.1', 6379); $access_token=$redis->get('oauth_access_token');这样每个方法都要new一次不太好,因为有时要调用好几个function,看手册是这么用的。但是报错了.$this->load->driver('cache'); var_dump($this->cache->redis->get("ci_session:932dd5eb64ccbf43ee76bfe378a2710666dd07f9"));没有静态的方法Redis::get()这么使用的吗?问下大家是怎么用的?
查看完整描述

2 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

我刚才翻了一下CI 3.0的system,其实CI是把CI放到了cache中来算的,并没有放到system的database中,看来是并没有把redis当数据库看待,仅仅是当作缓存。
至于你提出的地一个问题:
每次都要new一遍,这个我建议你自己写一个redis library,然后单例化,这样就不用每次new了;只有自己写,才能达到自己想要的效果。或者二次开发CI的database core,当然我不建议你这么做。
然后是你的第二个问题,我看了一下ci system的cache类,最后有一个叫做is_supported的方法,我建议你测试一下你的环境中redis扩展是否加载OK。
祝一切顺利。

查看完整回答
反对 回复 2018-07-30
?
达令说

TA贡献1821条经验 获得超6个赞

//配置了多个redis的情况

$this->config->load('redis', TRUE, TRUE);

$redis_conf = $this->config->item('redis');

$this->load->driver('cache', array('adapter' => 'redis', 'config' => $redis_conf['redis_config_name']), 'redis_name');


//只配置了默认redis

$this->load->driver('cache', array('adapter' => 'redis'), 'redis_name');

//使用

$this->redis_name->info();


查看完整回答
反对 回复 2018-07-30
  • 2 回答
  • 0 关注
  • 1147 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信