我正在尝试将对象集合存储在缓存中。
{
"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"
}]
}
在这种情况下,如果员工1更改了他的个人资料图片,我需要使完整的缓存对象无效以保持数据一致性。 这种方法破坏了缓存,因为只要员工有任何更新,我就需要清除完整的对象。
有没有更好的方法或设计我们可以遵循以优化它?
由于
答案 0 :(得分:0)
这是否是一个redis问题?我认为这是一般目的。
仅检索ID,然后通过它的ID请求每个条目。
将每个请求的条目列表仅存储为ID列表。
您现在可以缓存列表,也可以缓存每个条目。
由于您只检索ID,因此可以对数据制作非常简单的超高效索引(数据将始终直接从索引中获取,因为它只是ID)。更新可能需要也可能不需要使列表的高速缓存无效,使条目高速缓存无效可能就足够了。即使您使列表无效,您仍然可以获得相当好的性能,因为您不太可能经常使条目缓存无效。