Redis分布锁

 

先看一个并发例子;现在有一个服务器,如果同时有三个请求过来就会出问题

 

 加入同时进行,那么三个下单实际上在数据库中最后只减一,这显然不行

稍微改进版本   +synchronized,但是有bug,

因为这些都是jvm级别上的锁,只适合单体架构,不合适集群架构

 

 这时候可以看一个知识点jedis.SETNX

 

 优化如下

 

 但是这时候如果该服务器挂了就会一直存有key又没办法操作

所以可以再改进

 

 在Springboot中有一个合并命令即

 

 就可以不要上面两个了 ,注释掉

 

 但就是如此,上面的代码也不适合很多高并发场景。

posted @ 2020-06-22 20:47  To_Yang  阅读(176)  评论(0编辑  收藏  举报