有没有一种方法可以根据通配符使Memcache中的条目无效?
因此,如果我具有以下memcache键:
data/1
data/2
data/3
有什么方法可以使我用
data/*
之类的那些键失效吗?一口气清除一堆过时的数据将非常有帮助。 最佳答案
最好的方法是在创建内存缓存密钥时提供版本控制密钥。为此,我们提供了一个用于在系统上创建密钥的功能/方法。
$var1 = 123;
$var2 = 456;
$cacheKey = makeKey('monkeyInfo', $var1, $var2, ...);
makeKey()
使用cacheKeyVersions数组中的信息并返回:5:monkeyInfo:123:456
请注意开头的“ 5”。这来自keyNames =>版本的硬编码数组。因此,如果我们要使系统中的每个“ monkeyInfo”缓存值均无效,我们只需要将该数字更改为数组中的6。从那时起,同一通电话将寻找
6:monkeyInfo:123:456
这是密钥版本数组的外观示例。 '
makeKey()
'调用只是查看此数组以获取任何给定密钥的版本号。$cacheKeyVersions = array(
'monkeyInfo' => 5,
'zebraInfo' => 2
);
您可以做各种事情来使实现符合您的需求,但这是它的基本要旨。