首页 > 数据库 >redis 事务

redis 事务

时间:2022-11-28 15:25:31浏览次数:30  
标签:事务 127.0 OK 0.1 redis 6379 QUEUED

MySQL 在执行事务时,会提供回滚机制,当事务执行发生错误时,事务中的所有操作都会撤销,已经修改的数据也会被恢复到事务执行前的状态。

Redis 中并没有提供回滚机制,虽然 Redis 提供了 DISCARD 命令,但是这个命令只能用来主动放弃事务执行,把暂存的命令队列清空,起不到回滚的效果。

127.0.0.1:6379> get count
"10"
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> INCR count
QUEUED
127.0.0.1:6379> get count
QUEUED
127.0.0.1:6379> DISCARD
OK
127.0.0.1:6379> get count
"10"

事务执行过程中,如果命令入队时没报错,而事务提交后,实际执行时报错了,正确的命令依然可以正常执行,所以这可以看出 Redis 并不一定保证原子性(原子性:事务中的命令要不全部成功,要不全部失败)。
比如下面这个例子:

127.0.0.1:6379> set name aiver
OK
127.0.0.1:6379> MULTI 
OK
127.0.0.1:6379> set name aiverreading
QUEUED
127.0.0.1:6379> EXPIRE name 10s
QUEUED
127.0.0.1:6379> EXEC
1) OK
2) (error) ERR value is not an integer or out of range
127.0.0.1:6379> get name
"aiverreading"
127.0.0.1:6379> 

标签:事务,127.0,OK,0.1,redis,6379,QUEUED
From: https://www.cnblogs.com/aiverhua/p/16932261.html

相关文章

  • Redis 大key的影响及处理方式
    什么是redis的大key大key并不是指key的值很大,而是key对应的value很大。一般而言,下面这两种情况被称为大key:String类型的值大于10KB;Hash、List、Set、ZSe......
  • redis + 注解自动缓存
    1、redis配置引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></depende......
  • Mysql与Redis如何保证数据的一致性?
    问题分析:当MySQL中的数据发生更新时,就面临一个问题,如何确保MySQL与Redis数据的一致性,我们有两个选择:先更新MySQL,后删除(或更新)Redis先删除(或更新)Redis,后更新MySQL......
  • redisOject 和 底层数据结构对应 学习笔记
    笔记摘抄自https://pdai.tech/md/db/nosql-redis/db-redis-data-type-enc.htmlredisObject查看编码命令setk11objectencodingk1setk2helloobjectencoding......
  • 面试官:介绍一下 Redis 三种集群模式
    小码今天去面试。面试官:给我介绍一下Redis集群,小码:啊,平时开发用的都是单机Redis,没怎么用过集群了。面试官:好的,出门右转不谢。小码内心困惑:在小公司业务量也不大,单机的......
  • Redis学习(十)之redis中的数据类型之Streams类型
      1、redis流这种结构类似于日志追加; 2、redis生成一个唯一id为每个流,使用id检索他们的关联条目或者处理后续条目,这个怎么理解???到底是怎么关联的? 3、redis流支持多......
  • Kafka的Exactly-once语义与事务机制
    https://www.cnblogs.com/luxiaoxun/p/13048474.htmlKafka0.11.x版本(对应ConfluentPlatform3.3),该版本引入了exactly-once语义。精确一次确实很难实现(Exactly-onceis......
  • 分布式事务问题
    ​问题描述:最近在做项目过程中遇到这样一种场景:方法A依次调用方法B、C、D,其中方法B和D都是本地方法,方法C是远程方法(更具体的讲,方法C的功能是发送MQ消息),该场景要求方法A是......
  • 封装Redis工具类
    基于StringRedisTemplate封装一个缓存工具类,满足下列需求:方法1:将任意Java对象序列化为json并存储在string类型的key中,并且可以设置TTL过期时间方法2:将任意Java对象序......
  • Redis这些知识你了解吗?
    Redis非关系型数据库一、关于Redis1.什么是NoSql?NoSQL(NoSQL=NotOnlySQL),意即“不仅仅是SQL”,泛指非关系型的数据库.它们都有些共同的特征:不需要预定义......