redis分布式锁的几种实现方式,以及Redisson的配置和使用

Posted chenkeyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis分布式锁的几种实现方式,以及Redisson的配置和使用相关的知识,希望对你有一定的参考价值。

最近在开发中涉及到了多个客户端的对redis的某个key同时进行增删的问题。这里就会涉及一个问题:锁

先举例不加锁会出现问题:

  redis中存放了某个用户的账户余额 ,例如100 (用户id:余额)

  A端需要对用户扣费-1,需要两步,1.将该用户的目前余额取出来(100) 2.将余额扣除一部分(99)后再插入到redis中

  B端需要对用户充值+10,需要两部,1.将该用户的目前余额取出来(99)2.将余额添加充值额度(109)后再插入到redis中

  我们的期望执行顺序是A1、A2、B1、B2  结果就会是109

  但是如果不加锁,就会出现A1、B1、A2、B2(110)或者其他各种随机情况,这样就会造成数据错误。

  

Redis加锁的几种实现方式

  方式一,自己实现

    使用set命令:SET key value [EX seconds] [PX milliseconds] [NX|XX]       

    代码参考redis官网:https://redis.io/topics/distlock

    

以上是关于redis分布式锁的几种实现方式,以及Redisson的配置和使用的主要内容,如果未能解决你的问题,请参考以下文章

Redis集群搭建的几种方式

分布式锁的几种实现方式~

分布式锁的几种实现方式~

分布式锁的几种实现方式

分布式锁的几种实现方式

分布式锁的几种实现方式