原文链接:http://doc.redisfans.com/transaction/index.html
  Redis中也提供了对于事务的支持,由于Redis是单线程处理Client的请求,所以实现起来也比较容易,先介绍一下相关命令:

  • multi:表示事务的开始,一旦申明,后续的命令都会被放进事务快中;
  • watch key[key...]:监视一个key或多个key,如果在事务执行之前key被其他命令改动,事务就会被打断,此命令需在事务前申明,但是如果当discard或者exec被执行后由于事务已经生效,此时watch会被取消也就没有必要再执行unwatch了;
  • unwatch:取消watch命令监视的所有key;
  • exec:执行事务块内的命令;
  • discard:取消事务,放弃事务中的所有命令。

例1:测试事务
  multi
  set k1 v1
  set k2 v2
  set k3 v3
  set k4 v4
这是去获取k1、k2的值是获取不到的,最后执行
  exec
会返回结果并可以发现数据被写入redis中了。
例2:取消事务
  multi
  set k1 1
  set k2 2
  set k3 3
  set k4 4
  discard
此时发现redis中的数据并未发生改变,说明事务被取消了。
例3:watch
  watch k1 k2 k3 k4
  multi
  set k1 1
  set k2 2
  set k3 3
  set k4 4
这是我们新开一个客户端,将k1的值设置为1,然后再执行
  exec
此时,并不会执行,数据也不会发生变更。

Redis学习笔记(十) 命令进阶:事务操作的更多相关文章

  1. Redis自学笔记:4.1进阶-事务

    第4章:进阶 4.1事务 4.1.1概述 redis中的事务是一组命令的集合 事务同命令一样都是redis的最小执行单位,一个事务中的命令要么都执行, 要么都不执行 事务的原理是先将一个事务的命令发送 ...

  2. Redis学习笔记(二) ---- PHP操作Redis各数据类型

    Redis 一.使用PHP操作Redis存储系统中的各类数据类型方法 1.String(字符串)操作 <?php // 1. 实例化 $redis = new Redis; // 2. 连接 r ...

  3. Redis学习笔记~常用命令总结

    回到目录 客户端redis-cli常用的命令总结 连接到服务器 redis-cli -h 127.0.0.1 -p 6379 --连接指定的redis服务器 发布/订阅, pub/sub模式运行在re ...

  4. redis 学习笔记——数据同步、事务

    redis主从同步      redis支持简单易用的主从复制(master-slave replication)功能,该功能也是redis高可用性实现的基础.   redis复制原理      re ...

  5. Redis学习笔记--常用命令

    以下为本人学习Redis的备忘录,记录了大部分常用命令 1.客户端连接redis服务端: ===启动Redis服务端 redis-server /yourpath/redis.conf ===启动Re ...

  6. Redis学习笔记-常用命令篇(Centos7)

    redis提供了丰富的命令,这些命令可以在linux终端使用.在各类语言中,这些命令都有对应的方法. 一.键值相关 1.keys 返回满足给定pattern的所有key 127.0.0.1:6379& ...

  7. python 学习笔记十 rabbitmq(进阶篇)

    RabbitMQ MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消 ...

  8. Redis学习笔记十:独立功能之监视器

    通过执行 monitor 命令可以让客户端自己变成一个监视器,实时接收并打印当前处理的命令请求的相关信息. 127.0.0.1:6379> monitor OK 1451752646.83727 ...

  9. Redis学习笔记~目录

    回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...

  10. Redis学习笔记(二)-key相关命令【转载】

    转自 Redis学习笔记(二)-key相关命令 - 点解 - 博客园http://www.cnblogs.com/leny/p/5638764.html Redis支持的各种数据类型包括string, ...

随机推荐

  1. 图片文字滚动插件jQuery Scrollbox

    图片文字滚动插件jQuery Scrollbox附件中提供了五种图片.文字滚动样式,只需调用jquery库和jQuery Scrollbox插件,然后再加一段简单的jquery代码即可使用,兼容性良好 ...

  2. 深入理解DIP、IoC、DI以及IoC容器(转载)

    <转载的这个up的其他的文章也很nice> 这几个词第一眼看,懵逼,第二眼看,更特么懵逼..... 面向对象设计(OOD)有助于我们开发出高性能.易扩展以及易复用的程序. 其中,OOD有一 ...

  3. (转)shiro权限框架详解03-shiro介绍

    http://blog.csdn.net/facekbook/article/details/54893740 shiro介绍 本文正式进入主题.本文将介绍如下内容: 什么是shiro 为什么需要学习 ...

  4. 应用三:Vue之混入(mixin)与全局混入

    (注:本文适用于有一定Vue基础或开发经验的读者,文章就知识点的讲解不一定全面,但却是开发过程中很实用的) 首先介绍一下混入mixin的概念:   官方文档:混入提供了一种非常灵活的方式,来分发 Vu ...

  5. php进程控制

    1 POSIX扩展    posix_access($file,$mode)  查看文件的访问权限,可以由is_readable等几个函数代替    posix_errno()  返回posix函数执 ...

  6. gradle springboot打包时忽略某个配置文件

    jar { exclude "**/bootstrap.properties" }

  7. npm run build 打包项目,图片等资源使用相对路径会出现路径错误的问题

    在build下的utils.js中,3使用 ‘vue-style-loader’ 依赖的地方添加 publicPath: '../../' , 如图:

  8. Python编程:从入门到实践 - pygal篇 - Die

    掷骰子 # die.py 骰子类 from random import randint class Die(): """表示一个骰子的类""" ...

  9. pandas之cut(),qcut()

    功能:将数据进行离散化 可参见博客:https://blog.csdn.net/missyougoon/article/details/83986511 , 例子简易好懂 1.pd.cut函数有7个参 ...

  10. FreeMarker 语法 访问 pojo 的属性

    一.java 代码 @Test public void testFreeMarker() throws Exception { //1.创建一个模板文件 //2.创建一个Configuration对象 ...