有没有一种方法可以根据通配符使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
);


您可以做各种事情来使实现符合您的需求,但这是它的基本要旨。

08-28 08:09