A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 丁柳 中级黑马   /  2019-7-18 19:17  /  1048 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Redis最简单的事务实现方式是使用MULTI,DISCARD,EXEC命令将事务操作包围起来,MULTI 和 EXEC 中的操作将会一次性发送给服务器,这种方式称为流水线,减少客户端与服务器之间的网络通信次数,提升性能


redis事务三阶段:
开启:以MULTI开始一个事务
入队:将多个命令入队到事务队列中,接到这些命令并不会立即执行,而是放到等待执行的事务队列里面
执行:由EXEC命令触发事务


redis事务三大特性:
1,单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
2,没有隔离级别的概念:队列中的命令没有提交之前都不会实际的被执行,因为事务提交前任何指令都不会被实际执行,也就不存在”事务内的查询要看到事务里的更新,在事务外查询不能看到”
3,不保证事务原子性:redis同一个事务中如果有一条命令执行失败,其后的命令仍然会被执行,没有回滚
官方认为,只有当被调用的Redis命令有语法错误时,这条命令才会执行失败
4,通过WATCH命令实现CAS(检查再设置)操作,实现乐观锁;(读锁和写锁属于悲观锁),作为WATCH命令的参数的键会受到Redis的监控,Redis能够检测到它们的变化。在执行EXEC命令之前,如果Redis检测到至少有一个键被修改了,那么整个事务便会中止运行,然后EXEC命令会返回一个Null值,提醒用户事务运行失败

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马