java做的接口怎么避免多个人同时访问取到相同的数据?

接口逻辑: 调用接口取到数据,数据状态改变标记为已取到, 同一时间多个用户来去就会出现取数据重复,怎么可以避免这种状况?

你直接使用redis的锁setnx,效率很高

一、我们可以对数据库表设置主键、字段唯一约束来防止重复数据插入到数据库。

               在数据库层通过唯一键的方式来限制重复提交的记录。对于重复提交的内容自动被过滤。

           二、在前端控制,比如按钮置灰等

          三、在后端业务逻辑中,通过查询,判断该内容是否已经提交过(通过缓存来记录之类的)

在java中可以使用synchronized来修饰一个方法,防止同一时间有两个人调用该方法,不过使用这种方式会影响效率,不建议使用

并发问题的话,我同意1楼的解决方法!详细的解决方法可以看这篇博客:reids解决高并发

1.无无性能要求可以使用数据库悲观锁
2.单节点可以使用sync关键字在代码里
3.有性能要求可以使用redis分布式锁