通过正则表达式使memcache过期

我在我的rails应用程序中使用memcache。 我想说

使用“foo-123- *”等键过期所有条目

其中*是任何字符串。 当然,没有memcache发行版直接支持这个(对吧?),因为它的构建简单快速,因此它没有索引。

通过保留本地密钥列表,有几个项目可以解决这个问题:

  • https://github.com/defconomicron/dalli-store-extensions
  • https://github.com/jkassemi/memcache-store-extensions

但是将列表保留在内存中…该列表可能会在应用程序实例之间变得不同步……所以它不可靠。

这个问题是以另一种方式解决的吗? 我错过了常见的解决方案吗?

正如你所说,查询memcached就像你想要的那样是不可能的…但这里有一个我发现返回键列表的php示例

http://snipt.org/xtP

它发送

  • “统计项目”

然后迭代返回的项目并发送

  • “stats cachedump 42 100”

42是项目编号,100是要返回的项目数

然后你可以迭代返回的键并删除你不再需要的键。

(但这是一个丑陋的解决方法……)