最近 有一个这样的需求 。 redis 的key 存在mysql 中 然后 有专门的网页 管理redis key 管理员能手动删除 redis 缓存。
然后 当在service 中 加入@Transactional 注解。 当redis 是单节点的时候 一切正常 但是当redis 换成集群的时候 就出现问题。
原因是 redis 集群 不支持事务的回滚, 而我们发现 我们需要的事务的回滚 是 指的 一旦 redis 挂了 那么 mysql 对应的那个删除操作也要回滚。 后来 查了半天 发现都 没说解决方法 。 然后 无意中发现 把redis 配置中的enableTransactionSuppor 设置成false 就行了
<property name="enableTransactionSupport" value="false"/>