强一致性可以考虑事务,将缓存放到事务中,优雅点的的写法,可以参考 spring 的 transaction event ,使用 event 。 非强一致性,这样写也不会有多大问题,大不了查询的时候再查一遍,除非你业务能达到缓存穿透的并发量,不然两者没啥差别。
ps:求学有什么可嘲笑,啥都不懂就能用好大模型了吗
credo123
6 月 18 日
我这面是直接在 repository 层方法里处理了。缓存( redis/caffine )+DB ( JPA/mybatis )。repository 监控指标也底层改了下,监测到有 sql 执行才会记录指标。 开发人员多的情况下,一个 model 层对应的缓存处理只在 repository 层方便所有人通用。如果是在 service ,代码多起来很难看,很难通用。如果是 springCache 那种,注解散在各个 service 中,实际开发会很难受。 service 就处理业务,别让他参合 DB 层的东西了,不管是 DB 的缓存还是直接取 DB 的数据。 我也考虑过,再多一个缓存层,后来想来想去觉得没必要就没搞。
第 1 页 / 共 1 页
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。