【问题标题】:Configure Cakephp 2.6.0 with Redis Engine使用 Redis 引擎配置 Cakephp 2.6.0
【发布时间】:2015-03-09 21:17:34
【问题描述】:

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

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

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

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

致命错误:未捕获的异常“CacheException”与消息“缓存引擎会话未正确配置”。在 C:\wamp\www\project\cakephp\cakephp_2.6.0\lib\Cake\Cache\Cache.php 第 181 行

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

我们将不胜感激。

【问题讨论】:

  • 还有一件事,我正在为我的 cakephp 项目设置一个核心多应用程序。

标签: php performance cakephp caching redis


【解决方案1】:

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

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

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

我假设您已经成功设置 Redis on Windows 并安装了 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访问

点击 Core 下的“Tests”,然后点击“Cache/Engine/RedisEngine” 如果一切顺利,您应该会看到所有测试都通过了。

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

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

例如“myapp_cake_core_object_map”键。

希望这会有所帮助。

【讨论】:

  • 感谢您的信息,我的问题是,我没有安装 php-redis 扩展,我假设 cakephp 本身会照顾,我很傻。我安装了该扩展程序,一切都开始顺利进行,但是正如您提到的步骤,这正是进行设置所需的,所以,我会接受它作为正确答案。也许您想通过如何安装 phpredis 和 redis 服务器来详细说明您的答案。可能会对社区的其他用户有所帮助。
  • 警告!使用此配置将禁用会话锁定,从而为不需要的会话数据覆盖打开大门!
  • 理想的redis缓存$duration值应该是多少?
猜你喜欢
  • 2013-03-20
  • 2021-04-30
  • 2014-07-08
  • 2017-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多