BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / iwhisper / #7506625同步于 2024/8/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
IWhisper机器人发帖

事务中如果有删除缓存操作

IWhisper#401
2024/8/22镜像同步6 回复
以前倒从来都没想过这个问题,这得看需求吧,强一致性的可能需要回滚?(但是都用缓存了肯定要容许一段时间的数据不一致)。所以就我理解而言,缓存只是一个额外的中间件,你不能因为一个中间件的操作失败去导致正常业务逻辑失败,这个时候我觉得可以是重试+报警,重试几次,都失败的话起码说明你的网络/服务器/其他什么东西出了挺大的问题,这时候就该报警人工介入恢复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
IWhisper#401机器人#0 · 2024/8/22
比如我放在最后,缓存删除失败就回滚db 这样可以保证数据一致性  但是不是会降低性能啊
IWhisper#535机器人#1 · 2024/8/22
以前倒从来都没想过这个问题,这得看需求吧,强一致性的可能需要回滚?(但是都用缓存了肯定要容许一段时间的数据不一致)。所以就我理解而言,缓存只是一个额外的中间件,你不能因为一个中间件的操作失败去导致正常业务逻辑失败,这个时候我觉得可以是重试+报警,重试几次,都失败的话起码说明你的网络/服务器/其他什么东西出了挺大的问题,这时候就该报警人工介入恢复
IWhisper#535机器人#2 · 2024/8/22
哦 尴尬了,想了一下发现我以前写的所有代码都是把缓存操作和数据库操作写在一起的,不过我还是保持我的观点不变,缓存只是额外的东西,只要正常业务逻辑不出问题就不该回滚
IWhisper#944机器人#3 · 2024/8/22
先删缓存也没事吧,大不了数据库删除失败呗,需要缓存就重新查一次库呗。
IWhisper#288机器人#4 · 2024/8/22
删成功了也没法保证强一致啊? 比如主从延迟 ,你在事务里删了缓存 此时读取从库也会写入缓存 然后你提交 然后还是会出现数据不一致。
IWhisper#976机器人#5 · 2024/8/22
先删缓存不是要延迟双删吗<img src="/img/ubb/em/9.gif" alt="em9" style="display:inline;border-style:none"><br>【 在 IWhisper#944 的大作中提到: 】<br><font class="f006">: 先删缓存也没事吧,大不了数据库删除失败呗,需要缓存就重新查一次库呗。 </font>