Home >Backend Development >PHP Tutorial >CodeIgniter CI3.0怎么使用redis?

CodeIgniter CI3.0怎么使用redis?

WBOY
WBOYOriginal
2016-06-06 20:28:211456browse

config已经配置好了,现在只会在每个method中这么使用,

<code>// 连接本地的 Redis 服务
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$access_token=$redis->get('oauth_access_token');</code>

这样每个方法都要new一次不太好,因为有时要调用好几个function,

看手册是这么用的。但是报错了.

<code>$this->load->driver('cache');
var_dump($this->cache->redis->get("ci_session:932dd5eb64ccbf43ee76bfe378a2710666dd07f9"));</code>

没有静态的方法Redis::get()这么使用的吗?
问下大家是怎么用的?

CodeIgniter CI3.0怎么使用redis?

回复内容:

config已经配置好了,现在只会在每个method中这么使用,

<code>// 连接本地的 Redis 服务
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$access_token=$redis->get('oauth_access_token');</code>

这样每个方法都要new一次不太好,因为有时要调用好几个function,

看手册是这么用的。但是报错了.

<code>$this->load->driver('cache');
var_dump($this->cache->redis->get("ci_session:932dd5eb64ccbf43ee76bfe378a2710666dd07f9"));</code>

没有静态的方法Redis::get()这么使用的吗?
问下大家是怎么用的?

CodeIgniter CI3.0怎么使用redis?

<code>//配置了多个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();</code>

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn