前面主要介绍了redis数据类型,这里讲下事务问题

NoSQL都不支持事务,虽然Redis的Transactions提供的并不是严格的ACID的事务(比如一串用EXEC

提交执行的命令,在执行中服务器宕机,那么会有一部分命令执行了,剩下的没执行),

但是这个Transactions还是提供了基本的命令打包执行的功能(在服务器不出问题的情况下,

可以保证一连串的命令是顺序在一起执行的,中间有会有其它客户端命令插进来执行)。
Redis还提供了一个Watch功能,你可以对一个key进行Watch,然后再执行Transactions,

在这过程中,如果这个Watched的值进行了修改,那么这个Transactions会发现并拒绝执行。

Session
()第1步
redis 127.0.0.1:> get age
""
redis 127.0.0.1:> watch age
OK
redis 127.0.0.1:> multi
OK
redis 127.0.0.1:> Session
()第2步
redis 127.0.0.1:> set age
OK
redis 127.0.0.1:> get age
""
redis 127.0.0.1:> Session
()第3步
redis 127.0.0.1:> set age
QUEUED
redis 127.0.0.1:> exec
(nil)
redis 127.0.0.1:> get age
""
redis 127.0.0.1:> 第一步,Session 还没有来得及对age的值进行修改
第二步,Session 已经将age的值设为30
第三步,Session 希望将age的值设为20,但结果一执行返回是nil,说明执行失败,之后我们再取一下age的值是30,这是由于Session 1中对age加了乐观锁导致的。

最新文章

  1. JDBC的作用及重要接口
  2. 命令行子shell 括号 ()
  3. JavaScript函数绑定
  4. C++ 中的名称冲突之 "y1"
  5. Free Candies
  6. linq to sql 三层架构中使用CRUD操作
  7. Andriod Studio科学文章——4.常见问题解答有关编译
  8. 网易云课堂_程序设计入门-C语言_第四周:循环控制_1素数和
  9. git和GItHub的区别
  10. HTML——UL+CSS设计
  11. 4.Redis常用命令:List
  12. oracle客户端plsql设置字符集
  13. Java NIO vs IO
  14. B. An express train to reveries
  15. 用JNDI连接数据库
  16. NOIP 2009 最优贸易
  17. 一张图看懂STM32芯片型号的命名规则
  18. vue文件在编辑器Sublime Text3中高亮
  19. Java 的类加载机制
  20. MFC如何为程序添加图标

热门文章

  1. Web Api 上传图片,解决上传图片无格式
  2. Cordova从服务器更新客户端的JS文件
  3. CPA
  4. linux装载可执行程序简析
  5. DataGridView控件的各种操作总结
  6. CentOS的安装与克隆
  7. [清理页面缓存]asp.net、html
  8. 百度地图API示例之设置地图最大、最小级别
  9. HTML图像映射
  10. create和grant配合使用,对Mysql进行创建用户和对用户授权