除了会话之外的 cakephp redis 存储

cakephp redis storage besides sessions

我正在尝试使用 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?

谢谢

您需要配置 default 缓存配置以使用 Redis 而不是文件。在app/Config/bootstrap.php变化

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

它是这样写的:

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

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