我的新PHP应用程序可以通过缓存MySQL结果来加快速度。 我对memcached的经验有限,但我认为它不能满足我的要求。
当我在处理多用户应用程序时,我希望能够一次删除多个存储的值,而无需删除所有内容。
所以我可以存储:
account_1.value_a = foo
account_1.value_b = bar
account_2.value_a = dog
account_2.value_b = cat
是否有一个允许我根据通配符(或类似方法)删除的缓存系统,例如“删除account_1。*”,留下我:
account_1.value_a = <unset>
account_1.value_b = <unset>
account_2.value_a = dog
account_2.value_b = cat
谢谢, 吉姆
答案 0 :(得分:4)
不是真的,但您可以使用密钥中的版本号伪装它。
例如,如果你使用这样的键:
{entitykey}.{version}.{fieldname}
所以现在你的account_1
对象键将是:
account_1.1.value_a
account_1.1.value_b
如果要从缓存中删除account_1
,只需增加该对象的版本号。现在您的密钥将是:
account_1.2.value_a
account_1.2.value_b
您甚至不需要删除原始缓存值 - 它们将自动脱离缓存,因为您将不再使用它们。
答案 1 :(得分:0)
这可能会有所帮助:memcache and wildcards
答案 2 :(得分:0)
开源模块获取memcache中的密钥标签,以及其他: http://github.com/jamm/memory/
答案 3 :(得分:0)
Scache(http://scache.nanona.fi)具有嵌套的键空间,因此您可以将数据存储在子键上,并在需要时使父项过期。