我正在尝试将对象集合存储在缓存中。
{
"name": "Dep1",
"employees": [{
"id": 1,
"name": "emp1",
"profilePic": "http://test.com/img1.png"
}, {
"id": 2,
"name": "emp2",
"profilePic": "http://test.com/img2.png"
}, {
"id": 3,
"name": "emp3",
"profilePic": "http://test.com/img3.png"
}, {
"id": 4,
"name": "emp4",
"profilePic": "http://test.com/img4.png"
}]
}在这种情况下,如果Employee 1更改了他的个人资料图片,我需要使完全缓存的对象无效,以维护数据一致性。这种方法破坏了缓存,因为每当有员工的任何更新时,我都需要清除那个完整的对象。
有没有更好的方法或设计可以让我们对此进行优化?
谢谢
发布于 2016-08-03 18:30:24
这是一个redis问题吗?我假设它是通用的。
只检索ID,然后按ID请求每个条目。
将每个请求的条目列表仅存储为ID列表。
现在可以缓存列表,也可以缓存每个条目。
因为您只检索ID,所以可以对数据创建非常简单、非常高效的索引(数据总是直接从索引中获取,因为它只是ID)。更新可能需要或可能不需要使列表的高速缓存无效,这可能足以使条目高速缓存无效。即使您使列表无效,您仍然会有相当好的性能,因为您不太可能经常使条目缓存无效。
https://stackoverflow.com/questions/37773535
复制相似问题