cakephp redis存储除了会话

时间:2015-02-05 18:40:20

标签: cakephp redis cakephp-2.0 cakephp-2.3

我正在尝试使用redis作为我的缓存引擎,到目前为止,我已经能够在cakephp中添加add redis,并将我的会话写入我的redis就好了。这就是我在核心中做的事情

$engine = 'Redis';

$prefix = 'myapp_';

Cache::config('session', array(
    'engine' => $engine,
    'prefix' => $prefix . 'cake_session_',
    'duration' => $duration
));

Configure::write('Session', array(
    'defaults' => 'cache',
    'timeout' => 100,
    'start' => true,
    'checkAgent' => false,
    'handler' => array(
        'config' => 'session'
    )
));

现在我希望能够从我的控制器向redis写一些缓存查询,但我无法在redis中保存。相反,它将其保存为某些默认值(我不知道在哪里)缓存。

这就是我在控制器中所做的事情

 public function index()
    {
       Cache::write("TestKey","myquery","default"); 
       var_dump(Cache::read("TestKey")); die;      
    }

上面给出了我在浏览器上的值myquery但是当我去我的redis-cli并寻找键*我没有看到那个键。显然它在其他地方储蓄了。我不知道怎么写它来写redis。我试过这个Cache :: write(" TestKey"," myquery"," Redis");但那也行不通。 提前感谢您的帮助

**编辑1 **

我刚做了一些调试,看起来它试图添加到文件

object(FileEngine)[3]
  protected '_File' => null
  public 'settings' => 
    array (size=10)
      'engine' => string 'File' (length=4)
      'path' => string '/Library/WebServer/Documents/phoneapp_backend/app/tmp/cache/' (length=60)
      'prefix' => string 'cake_' (length=5)
      'lock' => boolean true
      'serialize' => boolean true
      'isWindows' => boolean false
      'mask' => int 436
      'duration' => int 3600
      'probability' => int 100
      'groups' => 
        array (size=0)
          empty
  protected '_init' => boolean true
  protected '_groupPrefix' => null

如何更改它以写入redis?

由于

1 个答案:

答案 0 :(得分:2)

您需要配置default缓存配置以使用Redis而不是File。在app/Config/bootstrap.php更改

Cache::config('default', array('engine' => 'File'));

所以它写着:

Cache::config('default', array('engine' => 'Redis'));

您可能需要在配置中添加更多选项,以指定运行Redis的服务器和端口。