题
我正在使用 memcache 为 Web 应用程序的模型层设计缓存,我最大的问题之一是数据一致性。我想到了像这样缓存数据:(key =查询,value =询问的对象ID列表)对于列表的每个ID:(键=对象.id,值=对象)
所以,每次查询完成时:如果查询已经存在,我会从缓存中检索列表中指示的对象。如果没有,列表中的所有对象都将存储在缓存中,替换任何其他旧值。
有人用过这个替代方案吗,大神吗?还有其他想法吗?
解决方案
缓存是没有正确答案的主题之一 - 这取决于您的领域。
您描述的缓存策略可能足以满足您的域的需要。但是,您似乎并不担心过时的数据。通常,我希望看到某些实体的时间戳 - 如果缓存的值比某些系统定义的参数旧,那么它将被认为是陈旧的并重新获取。
有关缓存算法的更多讨论,请参见 维基百科 (对于初学者)
其他提示
欢迎来到并发编程的世界。你会想了解一些关于 相互排斥. 。如果您告诉我们您正在开发什么语言/平台,我们可以更具体地描述您的选择。
不隶属于 StackOverflow