这是一个创建于 551 天前的主题,其中的信息可能已经有所发展或是发生改变。
请问各位,针对于更新数据后删除 redis 的写法,在不使用 spring cache 的情况下,大概有以下两种。
1. 在 controller 中:
伪代码:
serviceA.dbUpdate();
redisUtil.delete(key);
2.在 service 中:
伪代码:
doUpdate();
redisUtil.delete(key);
我的理解是,更偏向于第一种,因为第二种,由于 spring 的动态代理,事务整体提交是在最后执行的,这个时候可能 redis 已经把 key 删除了,导致脏数据写入 redis 。不知道各位在正常业务中是如何实现的。
当前如果使用 spring cache 的话可以通过定义 order 来确定 aop 的执行顺序。