Redis学习笔记(八)事务 和 连接相关命令
来源:互联网 发布:千牛手机淘宝店铺装修 编辑:程序博客网 时间:2024/06/13 22:47
转自:http://blog.csdn.net/men_wen/article/details/62075751
1. 事务
1. 事务的概念和原理
- Redis中的事务(transaction)是一组命令的集合。事务同命令一样都是Redis中的最小执行单位,一个事务中的命令要么都执行,要么都不执行。
- 事务的原理是先将属于一个事务的命令发送给Redis,然后在让Redis一次执行这些命令。
2. 事务相关命令
- MULTI
- 标记一个事务块的开始。 随后的指令将在执行EXEC时作为一个原子执行。
- EXEC
- 执行事务中所有在排队等待的指令并将链接状态恢复到正常 当使用WATCH 时,只有当被监视的键没有被修改,且允许检查设定机制时,EXEC会被执行。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- Redis保证一个事务中的所有命令要么被都不执行,要么都执行。
- 如果在发送EXEC命令前客户端断线了,则Redis会清空事务队列,事务中的所有命令都不会执行;
- 一旦客户端发送了EXEC命令,所有的命令都会被执行,即使伺候客户端断线也没关系,因为Redis会记录所有要执行的命令。
- WATCH key [key …]
- 标记所有指定的key 被监视起来,在事务中有条件的执行(乐观锁)。
- 被监控的键一旦被修改或删除,之后的事务就不会执行。
- 监控一直会持续到EXEC命令。
- UNWATCH
- 取消一个事务中已被监视的所有key。
- 如果执行EXEC 或者DISCARD, 则不需要手动执行UNWATCH 。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- DISCARD
- 取消一个事务中所有在排队等待的指令,并且将连接状态恢复到正常。
- 如果已使用WATCH,DISCARD将释放所有被WATCH的key。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
3. 事务中的错误处理
- 语法错误:命令不存在或命令参数个数不对。只要有一个命令有语法错误,执行EXEC命令后就会直接返回错误,语法正确的命令也不会执行。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 运行错误:运行错误指在命令执行时出现错误。如果事务里的一个命令出现运行错误,事务里其他命令依然会继续执行。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
在关系数据库事务提供回滚(rollback)功能,但是redis不支持,因为redis在事务上保持简洁和快速。
2. 连接相关命令
- PING [message]
- 如果后面没有参数时返回PONG,否则会返回后面带的参数。
- 这个命令经常用来测试一个连接是否还是可用的,或者用来测试一个连接的延时。
- 1
- 2
- 3
- 4
- ECHO message
- 返回消息。
- 1
- 2
- QUIT
- 请求服务器关闭连接。连接将会尽可能快的将未完成的客户端请求完成处理。
- 1
- 2
- 3
- 4
- 5
- AUTH
- 为redis服务请求设置一个密码。redis可以设置在客户端执行commands请求前需要通过密码验证。通过修改配置文件的requirepass就可以设置密码。 如果密码与配置文件里面设置的密码一致,服务端就会发会一个OK的状态码,接受客户端发送其他的请求命令,否则服务端会返回一个错误码,客户端需要尝试使用新的密码来进行连接。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- SELECT
- 选择一个数据库,下标值从0开始,一个新连接默认连接的数据库是DB0。
阅读全文
0 0
- Redis学习笔记(八)事务 和 连接相关命令
- Redis学习笔记(八)事务 和 连接相关命令
- Redis学习笔记八、事务
- Redis学习笔记(八)——事务入门
- Redis学习笔记之八:Redis的事务
- redis连接相关命令
- Redis学习笔记 (四) 之KEY相关命令
- Redis 学习笔记(二):数据类型与相关命令
- Redis学习笔记 (四) 之KEY相关命令
- Redis 事务学习笔记
- Redis学习笔记:事务
- [Redis学习笔记]-Redis 事务
- Redis命令学习-Transaction(事务)
- Redis学习笔记2--Redis数据类型及相关命令
- Redis学习笔记2--Redis数据类型及相关命令
- Redis学习笔记2--Redis数据类型及相关命令
- Redis学习笔记2--Redis数据类型及相关命令
- Redis学习笔记(三)--事务
- [面试]mysql主从复制原理,3三种读写分离的方式,mysql主从复制和读写分离
- android.graphics(三)graphics
- 使用Nginx反向代理实现负载均衡
- mscomm32串口控件 和 node serialport
- 利用Logstash的logstash-input-jdbc插件实现mysql增量导入ES
- Redis学习笔记(八)事务 和 连接相关命令
- 阿里云--Python使用flask开发项目,外网无法访问
- 建设者模式
- 软件工程---UML类图与类关系
- java笔记
- 四九、node.js实现歌词播放滚动
- spring boot 给静态变量注入值
- java基础--坦克大战(二)
- 前端之编辑器phpstorm