【问题标题】:Organizing memcache keys组织内存缓存键
【发布时间】:2011-01-31 10:21:19
【问题描述】:

我试图找到一种处理 memcache 密钥的好方法,以便以更文明的方式存储、检索和更新缓存层的数据。

找到了这个模式,看起来不错,但是如何将它变成 PHP 应用程序的功能部分呢?

身份映射模式:http://martinfowler.com/eaaCatalog/identityMap.html

谢谢!

更新:有人告诉我修改后的 memcache (memcache-tag) 显然确实做了很多这样的事情,但我无法在我的 windows 开发盒上安装 linux 软件...

【问题讨论】:

  • 那么,你对“更文明的方式”的理解是什么?您需要哪些功能?有哪些用例?另问:生产环境是什么,也是win box吗?
  • 不,它将使用 unix box live。我想做的是能够用它们的来源标记某些值,比如>>products

标签: caching memcached key-value-observing


【解决方案1】:

嗯,memcache 使用是一种身份映射模式。你检查你的缓存,然后你点击你的数据库(或者你正在使用的任何其他东西)。您可以通过存储对象而不是仅存储值来查找有关源的信息,但这样做会影响性能。

你实际上不能询问缓存它包含什么作为一个列表。要大规模失效,您必须保留一个列表,列出您放入的内容并对其进行迭代,或者您必须迭代所有可能符合关注模式的键。您指出的资源 memcache-tag 可以简化这一点,但它似乎没有与 memcache 项目保持内联。

因此,您现在的选择是迭代删除,或完全刷新缓存的所有内容。因此,我建议设计考虑是您应该问的问题。为了给你一个有用的答案,我这样问:你为什么要这样做?

【讨论】:

  • 感谢 Autocrazy。我们之所以要批量失效的原因,基本上是为了能够在存储的键之间创建关系,并在 mySQL 数据库中更改时强制所有相关键失效。
猜你喜欢
  • 2015-05-02
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-09
  • 1970-01-01
  • 2010-12-21
  • 2011-01-31
  • 1970-01-01
相关资源
最近更新 更多