redis事务及命令
2017-11-08 18:19
459 查看
redis事务定义:
redis中的事务是一组命令的集合,是redis的最小执行单位,一个事务要么都执行,要么都不执行。(在2.6.5前后定义不一致,2.6.5之前是忽略所有错误命令,之后是遇到错误命令不执行)reids事务保证一个事务内的命令依次执行,而不会被其他命令插入。
redis事务原理
redis事务的原理是先将属于一个事务的事务发送给redis,然后依次执行这些命令redis事务注意点
1、redis不支持回滚,如果事务中有错误的操作,无法回滚到处理前的状态,需要开发者处理。2、redis是单线程的服务,所以事务中不能将等待资源的操作都会立即返回,超时时间失效,因为事务如果等待,其他命令将无法执行。
127.0.0.1:6379> multi OK 127.0.0.1:6379> blpop testlist 1000 QUEUED 127.0.0.1:6379> exec 1) (nil) 127.0.0.1:6379> blpop testlist 1000
redis事务相关命令
和redis事务相关的redis命令有:**discard命令
exec命令
multi命令
unwatch命令
watch命令**
1、discard命令-取消事务,发起执行事务块里的所有命令。
discard命令用于取消事务,放弃执行事务块内所有命令。
语法:
discard
版本:2.0.0及以上
返回值:总是ok
127.0.0.1:6379[8]> multi OK 127.0.0.1:6379[8]> set testdiscard "123" QUEUED 127.0.0.1:6379[8]> discard OK 127.0.0.1:6379[8]> exec (error) ERR EXEC without MULTI 127.0.0.1:6379[8]>
2、exec命令-执行所有事务块内的命令。
exec命令用于执行所有事务块内的命令。
语法:
exec
版本:1.2.0
返回值:事务块内所有命令的返回值,按命令执行的先后顺序排列。当操作被打断时,返回nil,没事务执行exec返回对应的错误信息。
127.0.0.1:6379[8]> multi OK 127.0.0.1:6379[8]> set testexecok "exec ok" QUEUED 127.0.0.1:6379[8]> get testexecok QUEUED 127.0.0.1:6379[8]> exec 1) OK 2) "exec ok" 127.0.0.1:6379[8]>
3、multi命令-标记一个事务块的开始
multi命令用于标记一个事务块的开始
事务内的多条命令会按照先后顺序被放进一个队列中。最后由exec命令原子性地执行。
语法:
multi
版本:1.2.0及以上
返回值:总是ok
上两个例子都包含multi
4、watch命令-监视一个(或多个)key,如果在执行事务之前这个(这些)key被其他命令所改动,你们事务将被打断。
语法:
watch key1, [...keyn]
版本:2.2.0及以上
返回值:总是ok
127.0.0.1:6379[8]> watch testexecok OK 127.0.0.1:6379[8]> multi OK 127.0.0.1:6379[8]> set testexecok "exec OK" QUEUED 127.0.0.1:6379[8]> exec 1) OK
5、unwatch命令-取消watch命令对所有key的监视
unwatch命令用于取消watch命令对所有key的监视
语法:
unwatch
版本:2.2.0及以上
返回值:总是ok
相关文章推荐
- Redis事务命令
- redis事务中的WATCH命令和基于CAS的乐观锁
- 【Redis学习】:redis特性——多数据库、服务器命令、消息订阅与发布和事务
- redis学习笔记---redis特性(expire、事务、数据排序、config命令)
- 8、redis之事务1-redis命令
- Redis基础学习--Redis 事务(watch命令)、生存时间、排序、消息通知("发布/订阅"模式)、管道、节省空间
- redis事务中的WATCH命令和基于CAS的乐观锁
- Redis命令学习-Transaction(事务)
- NoSQL之Redis---事务(transaction)命令
- Redis 常用命令以及使用事务、设置key超时
- Redis系列之key操作命令与Redis中的事务详解(六)
- redis事务中的WATCH命令和基于CAS的乐观锁
- redis命令详解与使用场景举例——Transaction(事务)
- redis事务中的WATCH命令和基于CAS的乐观锁
- NoSQL之Redis高级实用命令详解--事务处理
- Redis系列之key操作命令与Redis中的事务详解(六)
- Redis 事务 命令
- Redis系列之key操作命令与Redis中的事务详解(六)
- Linux+Redis实战教程_day02_Redis特性(数据库、服务器命令、消息订阅与发布、事务)
- Redis 事务命令