Redis 缓存数据

30 天前
nitouge  nitouge

目前使用 Redis 缓存数据,对于 A 和 B 单独缓存,现在有其他服务需要 A 和 B 两个对象的某些属性 问题:

  1. 存数据在服务消费方还是服务提供方;
  2. 存组合对象,A,B 对象更新,组合对象都需要去更新或者删除再加载;
  3. 对于分页查询或者 list 查询后,缓存每一条数据,如果通过注解,是否需要详情接口,再去缓存,而不是直接缓存集合数据
1457 次点击
所在节点   Redis  Redis
4 条回复
dxddd
dxddd
30 天前
1 看场景,即时性不高的可能消费方和服务方都会缓存,能减少接口请求。
2 组合对象,就类似于宽表,能减少一次 redis 查询,确定性能要求真的这么极限么,那不如直接用内存。
3 分页查询多存在于后台管理,对性能要求不高。第二种场景也大多是查询“我的”数据,大多命中索引,一般不会放缓存中。第三种场景类似于商品列表,这种一般会被预热到缓存里,或者直接就是静态化的。
spritecn
spritecn
30 天前
这种活,不考虑上 ES 么,天生干这个的
nitouge
nitouge
29 天前
@dxddd 是有一个计算服务,调用频繁,我们考虑了两种方法,单独缓存 A 和 B,组合对象不缓存,组合对象 C 去调用缓存 A 和 B 的,也是利用了缓存。还有一个问题:使用了 Spring Cache 对于新增和更新也是两种方案,@CacheEvict 删除缓存,下次查询就再次缓存,@CachePut 去更新,旧的接口返回 Boolean 或者 void ,可能需要操作完还需要再去查询,或者通过发布事件去查询;对于新的接口我们是新增和更新返回缓存对象
nitouge
nitouge
29 天前
@spritecn 我们目前不考虑 es ,这个也不是我说的算

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1107082

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX