java redis 回滚_使用Java操作Redis事务

事务

Redis 事务可以一次执行多个命令,有两个特性:

隔离性:事务的所有命令都会序列化、按顺序的执行,事务执行完后才会执行其他客服端的命令。

原子性: 事务中的命令要么全部被执行,要么全部不执行。

使用你事务时会遇到两个错误:

入队时出错,一般时因为语法错误引起的,加入事务队列就会报错,遇到这类错误,一般会放弃事务

EXEC调用后出错,列如对一个 值为 a1 的 key 执行 incr,这类错误,即使某个命令产生了错误,其他命令依旧会继续执行执行,不会回滚

Reids 中的 WATCH命令

使用 WATCH 命令可以监控键,如果被监控的键,再 EXEC 之前被修改,那么事务会放弃执行(注意:事务中的命令在 exec命令后才开始执行)

EXEC 执行以后,无论事务是否执行成功,都会放弃对所有键的监控。

使用Java操控Redis事务命令

// 开启事务

Transaction transaction = jedis.multi();

// 提交事务

transaction.exec();

// 放弃事务

transaction.discard();

// 监控键

jedis.watch("balance", "debt");

// 放弃所有被监控的键

jedis.unwatch();

完整代码示例:

package com.project.test;<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值