我正在尝试使用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?
由于
答案 0 :(得分:2)
您需要配置default
缓存配置以使用Redis而不是File。在app/Config/bootstrap.php
更改
Cache::config('default', array('engine' => 'File'));
所以它写着:
Cache::config('default', array('engine' => 'Redis'));
您可能需要在配置中添加更多选项,以指定运行Redis的服务器和端口。