原文链接: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
此时,并不会执行,数据也不会发生变更。

最新文章

  1. MFC中如何画带实心箭头的直线
  2. 12.Linux软件安装 (一步一步学习大数据系列之 Linux)
  3. 实现LRU的两种方法---python实现
  4. JAVA中AJAX的使用
  5. linux GUI程序开发
  6. NET Core,Ubuntu运行
  7. jstl的小问题
  8. MVVM指南(课程学习)
  9. Asp.Net 常用工具类之Office-文档操作(6)
  10. 使用github+hexo搭建博客笔记
  11. kafka消息会不会丢失
  12. Python exe2shellcode,shellcode2exe
  13. win7(64bit)+python3.5+pyinstaller3.2安装和测试
  14. 测试教程网.unittest教程.1. 基本概念
  15. Codeforces Beta Round #49 (Div. 2)
  16. RPC、RMI、SOAP、WSDL的区别详解
  17. Teams UVA - 11609(快速幂板题)
  18. 如何用NAnt管理单文件程序仓库
  19. Ubuntu 16.04下 - vi编辑器使用【backspace】无法删除
  20. [ 转载 ] Java基础10--关于Object类下所有方法的简单解析

热门文章

  1. MVP演化论
  2. Eclipse中Git的基本使用
  3. winserver2012安装.net 3.5
  4. VS2008中C++打开Excel(MFC)
  5. oracle 删除表空间及数据文件方法
  6. javase 异常处理
  7. VS2013 opencv 无法删除“继承的值”问题解决方案
  8. JavaScript 原型 原型链
  9. 把SQLAlchemy查询对象转换成字典/json使用(汇总)
  10. 使用Ansible安装部署nginx+php+mysql之安装mysql(3)