2016-05-17 12 views
0

私はcakephp 2とredisを使用します。Cakephpでワイルドカードを使ってredis鍵を管理する

ワイルドカードマスクによってキャッシュからすべてのキーを削除するにはどうすればよいですか? たとえば、マスク「prefix_element_group1 *」ですべてを削除します。

について知っています。 グループのすべてのキーの削除をシミュレートするためにグループ値をインクリメントするだけです。古い値は、有効期限が切れるまでストレージに残ります。

少なくともマスクを使用してキーのリストを取得する方法はありますか? redis-cliの "keys *"に似ています

答えて

0

あなたの問題はCakePHPに固有の問題ではありません。ワイルドカードをサポートする任意のキーを削除するには、evalのLuaスクリプトを使用します。ここではPHPの例です:

$deleteScript = 'return redis.call("DEL", unpack(redis.call("keys", ARGV[1])))'; 
$redis = getRedisConnection(); // whatever CakePHP provides 
$redis->eval($deleteScript, 0, "keyPattern:*"); 

明らかに正確な構文は、特定のRedisのライブラリに基づいて異なりますが、うまくいけば、これはあなたの右のアイデアを与える必要があります。

関連する問題