什么是幂等?
在数学上简单来说数s与自身运算还是自己,那么称这个数具备幂等性。
在软件领域,在相同入参下重复调用某接口,结果不会因为次数的变动而改变,称此接口具备幂等性。
幂等性的实现方式?
中心思想:根据业务情况排除重复操作对数据的影响。
1、借助全局唯一标识
例如token,uuid等,进行判断如果有记录则不处理,无记录则处理并记录。适合增,删,改,复合场景等
2、借助业务主键
根据业务主键有无进行判断。将业务主键单独记录某数据表,并设置主键不可自增,接口访问时插入数据,如果失败则证明存在,如果成功则证明不存在。适合增,改,复合场景等。
3、借助数据库主键
适合删除场景。利用主键进行删除而不是通过其他模糊条件。
4、借助乐观锁
适合修改场景。数据表增加version字段,更新指定版本或者大于指定版本的数据
5、借助分布式锁
借助redis的setnx命令设置分布式锁
版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接,感谢各位看官!!!
本文出自:monkeyGeek
座右铭:生于忧患,死于安乐
欢迎志同道合的朋友一起交流、探讨!
