Memcache替代方案,更多控制

时间:2011-02-25 17:27:25

标签: php caching memcached

我的新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

谢谢, 吉姆

4 个答案:

答案 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)具有嵌套的键空间,因此您可以将数据存储在子键上,并在需要时使父项过期。