1

在我们的网站上,我们收集了各种数据。我们通过 ID 拉出很多记录,我们也有一些记录是分页的内容。

我们正在使用 memcached 缓存我们的查询 - 我们本质上是序列化查询数组,然后md5()是它。这为我们提供了用于此特定查询的键。但是,此查询可以返回多条记录 - 如果其中一条记录发生更改,我们希望使导致该记录返回的缓存查询无效。

实现这一目标的最佳方法是什么?我玩弄了拥有两个 memcached 实例的想法,如果你愿意的话,其中一个充当索引服务器。

谢谢!

4

1 回答 1

1

您可以解决此问题的一种方法(如果我没看错的话)是使用 MD5 键存储 ID 集合,然后分别存储这些行。因此,例如,如果您最终查询集合并返回 10 个结果,您将仅通过查询键的 MD5 保存 ID。对于每个 ID,您将查询数据库并获取完整的详细信息,这些详细信息单独存储在 memcached 中。当个别项目被更新时,现在更容易使 memcache 条目无效。并且这些记录更新现在不会影响集合,因为您只存储了 ID。希望这可以帮助。

于 2013-11-14T05:42:35.970 回答