2016-05-17 38 views
0

我使用cakephp 2和redis。在Cakephp中使用通配符管理redis密钥

如何通过通配符掩码从缓存中删除所有密钥? 例如,我想要删除所有掩码“prefix_element_group1 *”

关于我知道的clearGroup。 但它只增加组值以模拟删除组下的所有密钥旧值将保留在存储中,直到它们过期。

至少如何获得使用掩码的键列表?类似于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的库,但希望这应该给你正确的想法。