我可以使用正则表达式在memcache中一次性删除多个具有相似键名的键吗?
e.g。键是:
key1
key2
key3
command [key.]
使用什么“命令”应该删除所有 key1 , key2 和 key3 ?
答案 0 :(得分:3)
Memcached没有使用正则表达式删除密钥的选项。您可以删除每个密钥的缓存数据,也可以刷新整个缓存。
如果你有类似的密钥,你可以查看Memcached namspacing的官方维基。
e.g。而不是像以下那样保存Memcached中的密钥:
key1
key2
key3
您可以在命名空间中组织密钥,它们现在看起来像这样:
key:<namespace_value>:1
key:<namespace_value>:2
key:<namespace_value>:3
其中 namespace_value 是一个随机整数,你也会在Memcached中保留每个缓存区域(前缀“key”)例如,如果你的缓存数据看起来像这样:
<key> <value>
namespace:key 1234
key:1234:1 value1
key:1234:2 value2
key:1234:3 value3
现在,在您访问密钥之前,您将首先获取 namespace_value ,并将其附加到您的密钥。
1234
)key:<namespace_value>:1
=&gt;的键:1234:1 强> 现在要逐出所有带有“key”前缀的键,只需增加 namespace_value ,然后将其保存回缓存中即可。现在,您的命名空间值将为 1235 ,缓存数据将为:
<key> <value>
namespace:key 1235
key:1234:1 value1
key:1234:2 value2
key:1234:3 value3
使用新的命名空间值下次获取 key1 将搜索键:1235:1 ,并会给您一个未命中。因此,您已逐出所有密钥的缓存。