使用 Redis 引擎配置 Cakephp 2.6.0

Configure Cakephp 2.6.0 with Redis Engine

我正在尝试将 cakephp ver 2.6.0 配置为默认使用 redis 引擎。但不知何故我无法让它发挥作用。任何帮助将不胜感激。

到目前为止我已经尝试过的事情..

已配置 app/config 文件夹 2 个文件,core.php 和 bootstrap.php。 ,根据本博客此处提供的指南 configure cake with redis and this blog too Another cake-redis config setup

但我不断收到类似这样的错误。

致命错误:第 181 行 [=11] 中 C:\wamp\www\project\cakephp\cakephp_2.6.0\lib\Cake\Cache\Cache.php 中的消息 'Cache engine session is not properly configured.' 未捕获异常 'CacheException' =]

CacheException:缓存引擎会话配置不正确。在 C:\wamp\www\project\cakephp\cakephp_2.6.0\lib\Cake\Cache\Cache.php 第 181 行

任何帮助将不胜感激。

我今天在尝试设置 CakePHP 以使用 Redis 作为缓存引擎时遇到了同样的问题。

巧合的是,我也从您链接到的两个博客中阅读了相同的设置说明。

原因是我从 Another cake-redis config setup 博客 post 中原样复制粘贴了 Configure::write(...) 代码块并将其粘贴到文件中,而没有先注释掉 Configure::write(...) 代码块已经在 core.php 文件中。

我假设您已经成功设置 Redis on Windows and have installed the PHPRedis extension,没有任何问题。

我在这里使用 Another cake-redis config setup 中的说明。

在您的 app/Config/core.php 文件中,注释掉以下块:(这是从我的 core.php 中的第 218 行开始)

    Configure::write('Session', array(
    'defaults' => 'php'
));

相反,您可以将其放入:(您可以更改值以满足您的特定需要)

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

这之后,把$engine的值改成'Redis',这样就变成了:

$engine = 'Redis';

然后,将此代码放入,我将其放在文件的最后:(同样,您的值可能会有所不同,具体取决于您的设置)

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

就是这样。你完成了!无需更改任何其他内容。

为了确保 Redis 与 CakePHP 一起正常工作,我 运行 CakePHP 附带的 RedisEngine 测试套件。您需要安装 PHPUnit 才能正常工作。

可以通过http://your-cakephp-project/test.php

访问

点击核心下的'Tests',然后点击'Cache/Engine/RedisEngine' 如果一切正常,您应该会看到所有测试都通过了。

或者,您可以在命令提示符下使用 redis-cli 来确认 Redis 正在正确存储密钥。

通过键入 redis-cli 登录后,键入 KEYS * 这应该会为您提供与您的 CakePHP 设置相关的键列表。

例如 "myapp_cake_core_object_map" 键。

希望这对您有所帮助。