码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-02-28 21:36:34      阅读:452      评论:0      收藏:0      [点我收藏+]

标签:stl   账户   tps   分布   blog   配置   topic   body   bsp   

最近在开发中涉及到了多个客户端的对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的配置和使用

标签:stl   账户   tps   分布   blog   配置   topic   body   bsp   

原文地址:https://www.cnblogs.com/chenkeyu/p/8483403.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!