原文链接: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学习笔记系列(一)----选择器详解

    笔者好长时间没有更新过博客园的笔记了,一部分原因是去年刚刚开始工作一段时间忙碌的加班,体会了一种每天加班到凌晨的充实感,之后闲暇时间了也因为自己懒惰没有坚持记笔记的习惯,现在重新拾起来. 借用古人的一 ...

  2. (转载) IaaS, PaaS, Saas

    如果你是一个网站站长,想要建立一个网站.不采用云服务,你所需要的投入大概是:买服务器,安装服务器软件,编写网站程序. 现在你追随潮流,采用流行的云计算,如果你采用 IaaS 服务,那么意味着你就不用自 ...

  3. switch 语句来选择要执行的多个代码块之一。

    switch(n) { case 1: 执行代码块 1 break; case 2: 执行代码块 2 break; default: n 与 case 1 和 case 2 不同时执行的代码 }

  4. 发现被坑了,从来没看到说java的Date一旦实例化时间就不会变了

    java中使用Date对象获取系统当前时间,然而我就没看到哪篇教程告诉我说Date创建对象之后其中的时间是不会变的!!! 一开始我写了类似于下边这样的代码,希望每隔一段时间显示一次时间 Date d= ...

  5. LIS,LCS,LICS 学习笔记

    1.最长上升子序列(LIS) 子序列: 1.可以不连续 2.相对位置不变 dp[i][j] 表示前i位置,最大值为j的LIS长度 1. dp[i-1][j] 前i-1位置,最大值为j的LIS长度 (没 ...

  6. 使用shell脚本定时备份web网站代码

    #!/bin/bash ############### common file ################ #备份文件存放目录 WEBBACK_DIR="/data/backup/ba ...

  7. nodejs-Module

    nodejs的打包程序 模块:实现特定功能的文件 1.通过require引入模块 2.模块中的功能(变量,函数),通过赋给exports对象的某个属性提供给调用者使用 1 2 function sum ...

  8. CCEditBox/CCEditBoxImpl

    #ifndef __CCEditBoxIMPL_H__ #define __CCEditBoxIMPL_H__ #include "cocos2d.h" #include &quo ...

  9. JS 推断URL中是否含有 http:// 假设没有则自己主动为URL加上

    url = url.substr(0,7).toLowerCase() == "http://" ? url : "http://" + url; 记性不大好. ...

  10. SwipeRefreshLayout与ViewPager滑动事件冲突解决

    问题描写叙述: 开发中发现,SwipeRefreshLayout的下拉刷新,与ViewPager开发的banner的左右滑动事件有一点冲突,导致banner的左右滑动不够顺畅. 非常easy在bann ...