redis的事务
redis推荐学习网站
redis事务
Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证:
- 批量操作在发送 EXEC 命令前被放入队列缓存。
- 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。
- 在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。
一个事务从开始到执行会经历以下三个阶段:
开始事务。命令入队。执行事务。
redis事务与数据库事务不同,redis在某一命令失败后仍会执行事务中剩下的命令。
事务命令
命令 | 含义 |
---|---|
discard | 取消事务 |
exec | 执行所有事务块内的命令 |
multi | 标记一个事务块内的命令 |
unwatch | 取消watch命令对所有key的监事 |
watch key [key …] | 监视一个(或多个)key,如果在事务执行之前这个key被其他命令所改动,那么事务将被打断 |
实例
redis 127.0.0.1:6379> MULTI
OK
redis 127.0.0.1:6379> SET name "runlion"
QUEUED
redis 127.0.0.1:6379> GET name
QUEUED
redis 127.0.0.1:6379> SADD tag "redis" "program" "java"
QUEUED
redis 127.0.0.1:6379> SMEMBERS tag
QUEUED
redis 127.0.0.1:6379> EXEC
1) OK
2) "runlion"
3) (integer) 3
4) 1) "redis"
2) "program"
3) "java"