栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

redis的事务

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

redis的事务

事务

事务要么同时成功,要么同时失败,原子性。(关系型事务库才会保证原子性)

redis事务本质:一组命令的集合,一个事务的所有命令都会被序列化,在事务执行过程中,会按照顺序执行!一次性,顺序性,排他性,执行一系列的命令!

注意:redis单条命令式保存原子性的,但是事务不保证原子性。

redis事务没有隔离级别的概念!所有的命令在事务中,并没有直接被执行,只有发起执行命令的时候才会执行!Exec Redis的单条命令是保存原子性的,但是事务不保证原子性。

redis的事务

·开启事务()

·命令入队()

·执行事务()

锁:redis可以实现乐观锁

正常执行事务

127.0.0.1:6379> multi. #开启事务
OK
127.0.0.1:6379(TX)> set key1 v1。 #命令入队
QUEUED
127.0.0.1:6379(TX)> set key2 v2
QUEUED
127.0.0.1:6379(TX)> get key2
QUEUED
127.0.0.1:6379(TX)> set key3 v3
QUEUED
127.0.0.1:6379(TX)> exec。 #执行事务

  1. OK
  2. OK
  3. “v2”
  4. OK

放弃事务:

127.0.0.1:6379> multi
OK
127.0.0.1:6379(TX)> set k1 v1
QUEUED
127.0.0.1:6379(TX)> set k2 v2
QUEUED
127.0.0.1:6379(TX)> discard #放弃事务
OK
127.0.0.1:6379> get k2
(nil)

###############################

处理错误

编译型异常,运行时异常

针对运行时异常(1/0),如果事务队列中存在语法性,那么命令执行的时候,其他命令是可以正常执行的。只有错误命令会抛出异常。

127.0.0.1:6379> set key1 v1
OK
127.0.0.1:6379> multi
OK
127.0.0.1:6379(TX)> incr key1
QUEUED
127.0.0.1:6379(TX)> set ke v2
QUEUED
127.0.0.1:6379(TX)> set keys v3
QUEUED
127.0.0.1:6379(TX)> exec

  1. (error) ERR value is not an integer or out of range
  2. OK
  3. OK
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/572601.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号