php - 使用 Redis 引擎配置 Cakephp 2.6.0

标签 php performance cakephp caching redis

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

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

配置了app/config文件夹2个文件,core.php和bootstrap.php。 ,根据本博客 configure cake with redis 中提供的指南还有这个博客Another cake-redis config setup

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

fatal error :未捕获异常“CacheException”,消息为“缓存引擎 session 未正确配置”。在 C:\wamp\www\project\cakephp\cakephp_2.6.0\lib\Cake\Cache\Cache.php 第 181 行

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

任何帮助将不胜感激。

最佳答案

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

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

原因是我从 Another cake-redis config setup 复制粘贴了 Configure::write(...) 代码块。博客文章按原样粘贴到文件中,无需先注释掉 core.php 文件中已有的 Configure::write(...) 代码块。

我假设您已经成功设置Redis on Windows并已安装 PHPRedis extension没有任何问题。

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

在您的 app/Config/core.php 文件中,注释掉以下 block :(这是从我的 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 访问

单击“核心”下的“测试”,然后单击“缓存/引擎/RedisEngine” 如果一切顺利,您应该会看到所有测试都通过了。

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

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

“myapp_cake_core_object_map”键就是一个例子。

希望这有帮助。

关于php - 使用 Redis 引擎配置 Cakephp 2.6.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27896362/

相关文章:

python - 快速检查列表是否是嵌套列表元素之一的子列表

cakephp - 为什么 Cache::clear() 不清除我的( View )缓存? (CakePHP)

php - cakephp 逗号分隔的 id 作为外部 id

php - 一种产品有无限的类别,而另一种产品则有无限的类别

algorithm - 在图像上搜索指定项目的最快方法?

javascript - 登录后页面刷新?

javascript - JavaScript 中的 If/and/if 语句

mysql - 如何围绕表循环进行内部连接

php - 在 php 中加载 xml 文件 - 缺少访问权限?

php - 编写总结验证 javascript 代码