1

我正在使用 memcache 为 Web 应用程序的模型层设计缓存,我最大的问题之一是数据一致性。我想到了像这样缓存数据:(key=query,value=list of object ids result of the query)对于列表的每个id:(key=object.id,value=object)

因此,每次完成查询时:如果查询已经存在,我会从缓存中检索列表中指示的对象。如果不是,则列表的所有对象都存储在缓存中,替换任何其他旧值。

有人用过这个替代品吗,是上帝吗?还有其他想法吗?

4

2 回答 2

1

缓存是没有一个正确答案的主题之一 - 这取决于您的域。

您描述的缓存策略可能足以满足您的域。但是,您似乎并不担心过时的数据。通常我希望看到针对某些实体的时间戳 - 如果缓存的值比某些系统定义的参数旧,那么它将被认为是陈旧的并重新获取。

有关缓存算法的更多讨论,请参阅Wikipedia(初学者)

于 2008-09-18T14:26:20.623 回答
0

欢迎来到并发编程的世界。你会想了解一些关于互斥的知识。如果您告诉我们您正在开发什么语言/平台,我们可以更具体地描述您的选择。

于 2008-09-18T14:23:56.947 回答