除了会话之外的 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 所在的服务器和端口 运行。
我正在尝试使用 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 所在的服务器和端口 运行。