目的
- 避免信息的重复消费
方案
唯一id+指纹码
注意
- 需要和消费后的业务落库于相同事务中
操作
- 利用主键去重
- sql 查询 ```sql select count(1) from t_order where id = 唯一id+指纹码
select 1 from t_order where id = 唯一id+指纹码 limit 1 ```
优点
redis 原子性进行幂等
注意
- 和消费后的业务落库并不在同一个事务中
操作
- setnx
- 如果需要,进行 setex
问题
- 消费后的业务如果需要落库,那么如何于 redis 的幂等设计方案如何保证一致性
- 如果幂等设计方案是db,可以用事务进行保证
- 消费后的业务如果不需要落库,如何设置定时同步策略