通过正则表达式使memcache过期
我在我的rails应用程序中使用memcache。 我想说
使用“foo-123- *”等键过期所有条目
其中*是任何字符串。 当然,没有memcache发行版直接支持这个(对吧?),因为它的构建简单快速,因此它没有索引。
通过保留本地密钥列表,有几个项目可以解决这个问题:
- https://github.com/defconomicron/dalli-store-extensions
- https://github.com/jkassemi/memcache-store-extensions
但是将列表保留在内存中…该列表可能会在应用程序实例之间变得不同步……所以它不可靠。
这个问题是以另一种方式解决的吗? 我错过了常见的解决方案吗?
正如你所说,查询memcached就像你想要的那样是不可能的…但这里有一个我发现返回键列表的php示例
它发送
- “统计项目”
然后迭代返回的项目并发送
- “stats cachedump 42 100”
42是项目编号,100是要返回的项目数
然后你可以迭代返回的键并删除你不再需要的键。
(但这是一个丑陋的解决方法……)