1
我正在使用帶文件緩存和redis緩存的yii2。在我的主配置文件中,定義了redis緩存設置。Yii2 redis緩存在文件緩存中
'redis' => [
'class' => 'yii\redis\Connection',
'hostname' => 'MY_IP',
'port' => MY_PORT,
'database' => 0,
],
我還在文件緩存設置下添加了一個組件。
'cache' => [
'class' => 'yii\caching\FileCache',
],
所以緩存我使用的是$cache = Yii::$app->cache;
以及用於設置緩存Yii::$app->cache->set($id, $value, $time);
並開始使用Yii::$app->cache->get($id);
所以這是從文件緩存設置的值或者是覆蓋filecache並使用Redis的過去。
如果是使用filecache所以我們如何重寫與Redis的的filecache。可我們使用Redis的緩存與此Yii::$app->cache->get($id);
或者我們可以使用Redis的與use yii\redis\Cache;
和設置使用
$redis->hmset('test_collection', 'key1', 'val1', 'key2', 'val2');
在你的緩存設置你的類被定義爲redis,但你正在使用$ cache = Yii :: $ app-> cache;而不是$ redis = Yii :: $ app-> redis;所以這是存儲在redis或文件緩存中。 –
yes在redis中,我使'cache'組件使用'yii \ redis \ Cache'而不是'yii \ caching \ FileCache'。現在,兩個組件** cache **和** redis **應該使用相同的redis DB,您可以同時使用這兩個組件。唯一的區別是在'Yii :: $ app-> cache'中,你可以做簡單的東西,比如add和get(參見我鏈接的文檔)。爲了使用更高級的redis相關方法,例如'hmset()',您需要在'$ redis'組件中調用它們。 –
好的。當我們使用文件緩存時,它將創建一個用於存儲緩存的運行時文件,根據你在定義redis的屬性類之後它不會在運行時創建一個文件,它將使用來自redis db的文件。 –