,先去数据库查询version,然后执行更新语句,以version作为条件,如果执行更新时有其他人先更新了这张表的数据,那么这个条件就不生效了,也就不会执行操作了,通过这种乐观锁的机制来保障幂等性.
3.2...即在消费消息前呢,先去数据库查询这条消息的指纹码标识是否存在,没有就执行insert操作,如果有就代表已经被消费了,就不需要管了
3.2.2.2 利用Redis原子性
这里我们使用Redis实现幂等,还需要考虑如下问题...如果你想用事务,放弃吧,Redis缓存事务和MySQL事务根本不是同一个事务
如果不落库,那么都存储到缓存中,定时同步的策略如何设置为好?...但是有人可能会说,万一Con,ProRedis命令执行失败了怎么办,虽然又出现重复消费又出现Redis非正常执行命令的可能性极低,但是万一呢?...OK,我们可以在Redis命令执行失败时,将消息落库,每日用定时器,对这种极特殊的消息进行处理。