Springboot+Redis分布式锁解决数据的并发问题(实测+源码)

1、使用场景 

在分布式的环境中,就会出现访问并发的情况。

案例说明1:在仓储系统中库存的获取,当用户1通过get方式获取到存如redis中的库存信息的时候,还没来得及减库存。用户2此时也通过get方式获取了库存信息。此时的库存信息就不是正确的库存信息。我们要解决这个问题。

案例说明2:在医院的挂号系统中,用户挂号,一个医生只能只有20个号,我们需要保证一个号只能被一个人获取,也需要解决数据的并发问题。

解决办法1:在非分布式的环境中,单服务的情况下,我们可以选择使用同步锁机制(Synchronized关键字),这种用法虽然性能不高,但是可以解决该问题。

解决办法2:在分布式的环境中,我们可以使用Redis中提供的锁机制解决数据的并发问题。

解决办法3:如果使用的是如mysql数据库,可以使用MySQL中的锁机制。

总结:本质都是在用户1操作数据的时候,我们使用锁机制,保证用户1在操作的时候,其他用户不能操作。

2、重点说明

你可能感兴趣的:(redis解决方案,springboot技术,Java项目应用,redis,分布式,spring,boot)