事务和Jedis

本文深入探讨了Redis的事务特性,指出其单条命令的原子性与事务的局限性。讲解了Redis事务的执行流程,包括multi、exec和discard命令的使用。同时,提到了乐观锁的概念,通过watch和unwatch实现,并以Jedis为例展示了如何在Java中运用Redis事务。此外,还讨论了悲观锁和乐观锁的区别及其适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

事务

  • Redis单条命令 保证原子性,但事务不保证原子性,没有回滚

  • 一个事务中的所有命令都被序列化,一次性、顺序性、排他性的执行命令

  • Redis没有事务隔离级别

  • 事务的执行:

    • ​ 开启事务:multi

    • ​ 命令入队:…

    • ​ 执行/放弃事务:exec/discard

  • 编译时异常:不会执行任何代码

  • 运行时异常:执行正常代码,抛出错误

悲观锁

认为什么时候都会出问题,做什么都加锁

效率不高,使用场合少

乐观锁

认为什么时候都不会出问题,自己更新数据才去判断是否有人修改数据

watch可以当做redis的乐观锁

watch 字段		//对该字段加乐观锁
UNwatch 字段		//解锁

**过程(CAS):**事务先获得原数据,执行时对比 获取到的 和 最新数据,若一样,则更新;若不一样,则失败

Jedis

Jedis是java连接开发工具

1.添加依赖

在这里插入图片描述
3.使用Jedis调用Redis所有api

命令看上一节

Jedis实现事务

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值