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()這麼使用的嗎?
問下大家是怎麼用的?
回複內容:
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()這麼使用的嗎?
問下大家是怎麼用的?
//配置了多個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();
我剛才翻了一下CI 3.0的system,其實CI是把CI放到了cache中來算的,並沒有放到system的database中,看來是並沒有把redis當資料庫看待,僅僅是當作緩衝。
至於你提出的地一個問題:
每次都要new一遍,這個我建議你自己寫一個redis library,然後單例化,這樣就不用每次new了;只有自己寫,才能達到自己想要的效果。或者二次開發CI的database core,當然我不建議你這麼做。
然後是你的第二個問題,我看了一下ci system的cache類,最後有一個叫做is_supported的方法,我建議你測試一下你的環境中redis擴充是否載入OK。
祝一切順利。