幂等性:一个操作不论执行多少次,每次执行的结果都要相等。
方案一:
唯一 ID + 指纹码
- 唯一ID + 指纹码机制,设置为表的主键。利用主键去重。
- select count(1) from table where id = 唯一 ID + 指纹码
- 好处:实现简单
- 坏处:高并发下对数据库的写入有性能瓶颈。
- 解决方案: 对主键分库分表,使用算法路由。
方案二:
使用 Redis 的原子性
- 使用 redis 命令就可以保证原子性
需要考虑的问题:
- 数据是否需要入库,如果需要,数据库和缓存如何做到原子性?
- 如果不要入库,缓存如何设置定时同步策略 ?
网友评论