Redis乐观锁

本文介绍了Redis作为内存数据结构服务器,支持多种数据类型及事务处理。特别提到了乐观锁的概念,并通过示例展示了如何利用Redis的`WATCH`命令实现乐观锁,确保多线程环境下的数据一致性。在更新数据时,先检查版本号,若有变动则放弃操作,否则执行事务。
摘要由CSDN通过智能技术生成

Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。

监控!watch
悲观锁:什么时候都会出问题,无论做什么都会加锁
乐观锁:什么时候都不会出问题,所以不会加锁
更新数据的时候判断一下,是否有人修改过数据

Redis 一般使用乐观锁
获取version
更新的时候比较version

set money 100
set out 0
watch money # 监视money对象
multi # 事务正常结束,数据期间没有发生变动,则正常执行
DECRBY money 10
INCRBY out 10
exec
# 输出结果 
# 1)(integer)80
# 2)(integer)20
watch money
multi
DECRBY money 10
INCRBY out 10
exec # 执行之前如果有其他的线程改变了Redis中的数据
# 输出结果:nil
# 如果还想执行
# 可以
unwatch money
watch money
# 然后可以继续执行其他命令或事物 

Redis 多线程可以使用watch实现乐观锁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值