首页 > 数据库 >Redis的事务transactions

Redis的事务transactions

时间:2023-11-30 15:36:34浏览次数:34  
标签:事务 set transactions Redis 命令 执行 客户端

1.Redis的事务仅仅是保证事务里的操作会被连续独占的执行,Redis的命令执行是单线程,

2.Redis不保证事务的所有指令可以同时成功或者同时失败,只可以决定是否开始执行全部指令的能力,因此也没有回滚

3.Redis可以保证一个事物内的命令会依次执行,不会被其他指令插入

 

MULTI #事务开始的标志
DISCARD #取消事务,放弃执行事务的所有命令
EXEC #执行所有事务块内的命令
WATCH #监视key 如果事务在执行前这个key被改动会打断事物
UNWATCH #取消watch对所有key的监视
#正常执行事务
MULTI

EXEC
#放弃执行事务
MULTI

DISCARD

一致:在执行事务的时候如果有一个命令语法出错,Redis就会返回错误,所有命令都不执行

非一致性:在执行事务的时候如果语法没有出错,但是语义出错,那么就会不执行错误语句,正确语句照常执行

比如:set k1 [email protected]

      incr k1

Redis支持乐观锁,关键字wacth

第一个客户端
wacth v1
multi
-----------
第二个客户端
set v1 10
-----------
第一个客户端
set v1 20
exec

上面这个例子中的事务会保持一致性,在事务中其他指令也不会发生

注意:在提交exec的时候之前加的监控锁就都被取消了,当客户端失去链接的时候所有东西的监控都会被取消

标签:事务,set,transactions,Redis,命令,执行,客户端
From: https://www.cnblogs.com/kun1790051360/p/17867481.html

相关文章

  • 如何查看redis中当前的客户端连接并且杀掉某些客户端连接
    查看当前的redisclient信息 进入redis控制台,执行命令clientlist  释放(杀掉)某些客户端 执行命令clientkill<客户端地址> 客户端地址,就是上面的addr=的部分 示例:clientkill10.1.40.156:24830  执行正确,会返回OK,表示客户端连接已经被kill掉了......
  • Redis持久化RDB与AOF介绍
    就是将内存中的数据通过rdb/aof进行持久化写入硬盘中rdb就是进行持久化的快照在指定的时间间隔内,执行数据集的时间点快照。这个快照文件称为(dump.rdb)RDB文件,RedisDataBaserdb的手动保存中都是用bgsave,不用save。在使用save时主程序会阻塞当前Redis服务器,执行期间不能处理其......
  • 【必读】开发者必备!轻松学习MySQL事务的使用方法
    在日常开发中我们经常会遇到需要同时处理多个操作的情况,比如在购物时,我们需要同时完成支付和更新库存两个操作。这时,如果其中一个操作失败了,我们就需要进行回滚,以保证数据的一致性。那么,如何在MySQL中实现这样的功能呢?答案就是——事务。下面我们就来介绍一下MySQL事务是什么?它......
  • redis锁
    publicclassRedisTag{/****@paramtagName*@paramtype1、开始2、结束*@paramredisTemplate*@return*/publicstaticbooleantag(StringtagName,Stringtype,RedisTemplate<String,String>redisTemplate){......
  • java代码连接redis
    RedisURIuri=RedisURI.Builder.redis("XXXX",16379).withDatabase(6).withPassword("XXXX").build();redisClient=RedisClient.create(uri);conn......
  • Redis数据类型操作和应用场景
    String常用指令#设置key-value类型的值>SETnamepan#根据key获得对应的value>GETname#判断某个key是否存在>EXISTSname#返回key所储存的字符串值的长度>STRLENname#删除某个key对应的值>DELname#批量设置key-value类型的值>MSET......
  • 【Azure Cache for Redis】Redis的导出页面无法配置Storage SAS时通过az cli来完成
    问题描述在AzureRedis的导出页面,突然不能配置StorageAccount的SAS作为授权方式。那么是否可以通过AZCLI或者是Powershell来实现SAS的配置呢? 问题解答可以的。使用  azredisexport 可以实现azredisexport--container--prefix[--auth-......
  • 【Azure Cache for Redis】Redis的导出页面无法配置Storage SAS时通过az cli来完成
    问题描述在AzureRedis的导出页面,突然不能配置StorageAccount的SAS作为授权方式。那么是否可以通过AZCLI或者是Powershell来实现SAS的配置呢? 问题解答可以的。使用  azredisexport 可以实现azredisexport--container--prefix[--auth-......
  • Redis基础
    NosqlNoSQL:即Not-OnlySQL(泛指非关系型的数据库),作为关系型数据库的补充。作用:应对基于海量用户和海量数据前提下的数据处理问题。Redis介绍概念Redis(REmoteDlctionaryServer)是用C语言开发的一个开源的高性能键值对(key-value)数据库特征1.数据间没有必然的关联关系......
  • 【Azure Cache for Redis】Redis的导出页面无法配置Storage SAS时通过az cli来完成
    问题描述在AzureRedis的导出页面,突然不能配置StorageAccount的SAS作为授权方式。那么是否可以通过AZCLI或者是Powershell来实现SAS的配置呢? 问题解答可以的。使用  azredisexport可以实现azredisexport--container--prefix......