接口逻辑: 调用接口取到数据,数据状态改变标记为已取到, 同一时间多个用户来去就会出现取数据重复,怎么可以避免这种状况?
你直接使用redis的锁setnx,效率很高
一、我们可以对数据库表设置主键、字段唯一约束来防止重复数据插入到数据库。
在数据库层通过唯一键的方式来限制重复提交的记录。对于重复提交的内容自动被过滤。
二、在前端控制,比如按钮置灰等
三、在后端业务逻辑中,通过查询,判断该内容是否已经提交过(通过缓存来记录之类的)
在java中可以使用synchronized来修饰一个方法,防止同一时间有两个人调用该方法,不过使用这种方式会影响效率,不建议使用
并发问题的话,我同意1楼的解决方法!详细的解决方法可以看这篇博客:reids解决高并发
1.无无性能要求可以使用数据库悲观锁
2.单节点可以使用sync关键字在代码里
3.有性能要求可以使用redis分布式锁