redis的事务 不保证原子性
三个步骤:开启事务、命令入队、执行事务

开启事务:multi

执行事务:exec

127.0.0.1:6379> multi  #开启事务
OK
127.0.0.1:6379> set name applesnt #命令入队
QUEUED
127.0.0.1:6379> set age 12 #命令入队
QUEUED
127.0.0.1:6379> get name #命令入队
QUEUED
127.0.0.1:6379> exec #执行事务 输出结果
1) OK
2) OK
3) "applesnt"

取消事务:discard

127.0.0.1:6379> multi #开启事务
OK
127.0.0.1:6379> set name applesnt #命令入队
QUEUED
127.0.0.1:6379> discard #取消事务
OK
127.0.0.1:6379> get name #事务队列不会被执行
(nil)

事务处理(编译时事务):一个事务里 命令出错 整个事务就不会被执行

12127.0.0.1:6379> multi
OK
127.0.0.1:6379> set name applesnt #set一个name
QUEUED
127.0.0.1:6379> getset name #没有getset这条命令 会报错
(error) ERR wrong number of arguments for 'getset' command
127.0.0.1:6379> set age 12 #继续set一个age
QUEUED
127.0.0.1:6379> get name #获取name的值
QUEUED
127.0.0.1:6379> exec #事务提交失败
(error) EXECABORT Transaction discarded because of previous errors.
127.0.0.1:6379> get name #事务没有执行成功
(nil)

事务处理(运行时事务):一个事务里 其中一条运行出错 其他正确的运行会执行成功

127.0.0.1:6379> multi
OK
127.0.0.1:6379> set count "v1"
QUEUED
127.0.0.1:6379> incr count #对字符串加1 运行时会出错
QUEUED
127.0.0.1:6379> set name applesnt
QUEUED
127.0.0.1:6379> get name
QUEUED
127.0.0.1:6379> exec #成功了三条 失败了一条
1) OK
2) (error) ERR value is not an integer or out of range
3) OK
4) "applesnt"
127.0.0.1:6379> get count
"v1"

redis: 事务管理(九)的更多相关文章

  1. 【原】Redis事务管理

    Redis高级篇 事务 MULTI, EXEC, DISCARD and WATCH命令用于保证Redis中的事务处理 一个事务中的所有命令被序列化并串行执行. 事务的原子性. 用法 MULTI ...

  2. Redis事务管理

    用过其他关系型数据库(比如msql)的肯定都指定,在关系型数据库里面的事务可以保证多个命令操作要么同时成功,要么同时失败.并且在执行事务的时候,可以有隔离级别. 但是在Redis中的事务,只是保证事务 ...

  3. Redis学习笔记~Redis事务机制与Lind.DDD.Repositories.Redis事务机制的实现

    回到目录 Redis本身支持事务,这就是SQL数据库有Transaction一样,而Redis的驱动也支持事务,这在ServiceStack.Redis就有所体现,它也是目前最受业界认可的Redis ...

  4. Redis学习——Redis事务

    Redis和传统的关系型数据库一样,因为具有持久化的功能,所以也有事务的功能! 有关事务相关的概念和介绍,这里就不做介绍. 在学习Redis的事务之前,首先抛出一个面试的问题. 面试官:请问Redis ...

  5. Redis整理第三波(生存时间、事务管理)

    expire  设置生存时间 Redis在实际使用过程中更多的用作缓存,然而缓存的数据一般都是需要设置生存时间的,即到期后数据销毁. TTL查看key的剩余时间,当返回值为-2时,表示键被删除. 当 ...

  6. redis的持久化 与事务管理

    1. redis的持久化 Redis的持久化主要分为两部分:RDB(Redis DataBase), AOF(Append Only File) 2. 什么是redis 的持久化        在指定 ...

  7. Java框架spring 学习笔记(十九):事务管理(注解管理)

    注解管理的方式要比xml配置方式要简单很多 只需在配置文件中添加事务注解 <?xml version="1.0" encoding="UTF-8"?> ...

  8. Spring 4 官方文档学习(九)数据访问之事务管理

    说明:未整理版,未完待续,请绕行 本部分的重点是数据访问以及数据访问层与业务层之间的交互. 1.Spring框架的事务管理 介绍 http://docs.spring.io/spring/docs/c ...

  9. redis之(九)redis的事务机制

    [一]什么是redis的事务 --->redis的事务是一组命令的集合. --->redis的事务是保证一组命令,要么都执行,要么都不执行.但不支持一组命令中,其中一个或多个执行失败,不支 ...

  10. Spring总结九:事务管理机制

    何为事务 事务(Transaction),一般是指要做的或所做的事情.在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit).事务通常由高级数据库操纵语言或编程语言(如SQL ...

随机推荐

  1. Eclipse无法查看第三方jar包源代码解决

    我在csdn写了过了:https://blog.csdn.net/weixin_40404606/article/details/105174820

  2. JS 剑指Offer(三) 替换字符串中的空格

    请实现一个函数,把字符串 s 中的每个空格替换成"%20". 实现这个函数的方法很简单,在JS中可以直接应用正则表达式,代码如下 直接将全局中的space换成%20,一行代码搞定 ...

  3. Python学习-第五节:面向对象

    概念: 核心是“过程”二字,“过程”指的是解决问题的步骤,即先干什么再干什么......,基于面向过程设计程序就好比在设计一条流水线,是一种机械式的思维方式.若程序一开始是要着手解决一个大的问题,面向 ...

  4. Aho-Corasick automaton

    目录 KMP 算法 BF 算法 KMP 算法 避免重复遍历 算法思想 代码实现 匹配函数 求 next 数组 字典树 多模匹配 构造字典树 字典树的结构体定义 构造算法 伪代码 代码实现 失配指针 功 ...

  5. vulnhub~sunset:dusk1

    晚上闲来无事,准备做个target,结果是各种错误.在睡觉前还是没有顺利的做出来.先将TroubleSHOOTing 总结如下: 在用hydra爆破mysql的时候,发现 'MySql Host is ...

  6. 微服务架构盛行的时代,你需要了解点 Spring Boot

    随着互联网的高速发展,庞大的用户群体和快速的需求变化已经成为了传统架构的痛点. 在这种情况下,如何从系统架构的角度出发,构建出灵活.易扩展的系统来快速响应需求的变化,同时,随着用户量的增加,如何保证系 ...

  7. 1023 Have Fun with Numbers (20 分)

    1023 Have Fun with Numbers (20 分)   Notice that the number 123456789 is a 9-digit number consisting ...

  8. 【JAVA进阶架构师指南】之四:垃圾回收GC

    前言   在[JAVA进阶架构师指南]系列二和三中,我们了解了JVM的内存模型以及类加载机制,其中在内存模型中,我们说到,从线程角度来说,JVM分为线程私有的区域(虚拟机栈/本地方法栈/程序计数器)和 ...

  9. C++类的成员初始化

    C++类的成员初始化 学到一个类的成员初始化,目前已知的用途是给类内部的const类型变量进行赋值. 首先,如果像这么干,编译器会报错. class MyClass{ public: Myclass( ...

  10. 【redis】redis

    一.redis简介: 1. reids 也是一个 key-value 存储系统,更加确切地说,它已经是一个非关系型数据库. 2. 关系型. SQL语言. 3. 非关系型. key - value. 4 ...