在我们的网站上,我们有各种各样的数据集。我们通过ID提取大量记录,并且我们还有一些分页内容的记录。
我们使用memcached缓存查询 - 我们基本上序列化查询数组,然后md5()
。这为我们提供了用于此特定查询的密钥。但是,此查询可以返回多个记录 - 如果其中一个记录发生更改,我们希望使导致该记录返回的缓存查询无效。
实现这一目标的最佳方法是什么?我玩弄了两个memcached实例的想法,其中一个就像索引服务器一样,如果你愿意的话。
谢谢!
答案 0 :(得分:1)
解决此问题的方法之一(如果我没有正确读取),是使用MD5密钥存储ID集合,然后分别存储这些行。因此,例如,如果您最终查询集合并返回10个结果,则只能通过查询键的MD5保存ID。对于每个ID,您将查询数据库并获取完整的详细信息,这些详细信息分别存储在memcached中。当单个项目更新时,现在更容易使memcache条目无效。这些记录更新现在不会影响集合,因为您只存储了ID。希望这会有所帮助。