目录搜索
Redis 基础教程Redis 教程Redis 安装Redis 配置Redis 数据类型Redis 命令Redis 命令Redis 键(key)Redis DEL 命令Redis Dump 命令Redis EXISTS 命令Redis Expire 命令Redis Expireat 命令Redis PEXPIREAT 命令Redis PEXPIREAT 命令Redis Keys 命令Redis Move 命令Redis PERSIST 命令Redis Pttl 命令Redis TTL 命令Redis RANDOMKEY 命令Redis Rename 命令Redis Renamenx 命令Redis Type 命令Redis 字符串(String)Redis SET 命令Redis Get 命令Redis Getrange 命令Redis Getset 命令Redis Getbit 命令Redis Mget 命令Redis Setbit 命令Redis Setex 命令Redis Setnx 命令Redis Setrange 命令Redis Strlen 命令Redis Mset 命令Redis Msetnx 命令Redis Psetex 命令Redis Incr 命令Redis Incrby 命令Redis Incrbyfloat 命令Redis Decr 命令Redis Decrby 命令Redis Append 命令Redis 哈希(Hash)Redis Hdel 命令Redis Hexists 命令Redis Hget 命令Redis Hgetall 命令Redis Hincrby 命令Redis Hincrbyfloat 命令Redis Hkeys 命令Redis Hlen 命令Redis Hmget 命令Redis Hmset 命令Redis Hset 命令Redis Hsetnx 命令Redis Hvals 命令Redis 列表(List)Redis Blpop 命令Redis Brpop 命令Redis Brpoplpush 命令Redis Lindex 命令Redis Linsert 命令Redis Llen 命令Redis Lpop 命令Redis Lpush 命令Redis Lpushx 命令Redis Lrange 命令Redis Lrem 命令Redis Lset 命令Redis Ltrim 命令Redis Rpop 命令Redis Rpoplpush 命令Redis Rpush 命令Redis Rpushx 命令Redis 集合(Set)Redis Sadd 命令Redis Scard 命令Redis Sdiff 命令Redis Sdiffstore 命令Redis Sinter 命令Redis Sinterstore 命令Redis Sismember 命令Redis Smembers 命令Redis Smove 命令Redis Spop 命令Redis Srandmember 命令Redis Srem 命令Redis Sunion 命令Redis Sunionstore 命令Redis Sscan 命令Redis 有序集合(sorted set)Redis Zadd 命令Redis Zcard 命令Redis Zcount 命令Redis Zincrby 命令Redis Zinterstore 命令Redis Zlexcount 命令Redis Zrange 命令Redis Zrangebylex 命令Redis Zrangebyscore 命令Redis Zrank 命令Redis Zrem 命令Redis Zremrangebylex 命令Redis Zremrangebyrank 命令Redis Zremrangebyscore 命令Redis Zrevrange 命令Redis Zrevrangebyscore 命令Redis Zrevrank 命令Redis Zscore 命令Redis Zunionstore 命令Redis Zscan 命令Redis HyperLogLogRedis Pfadd 命令Redis Pfcount 命令Redis Pgmerge 命令Redis 发布订阅Redis Psubscribe 命令Redis Pubsub 命令Redis Publish 命令Redis Punsubscribe 命令Redis Subscribe 命令Redis Unsubscribe 命令Redis 事务Redis Discard 命令Redis Exec 命令Redis Multi 命令Redis Unwatch 命令Redis Watch 命令Redis 脚本Redis Eval 命令Redis Evalsha 命令Redis Script Exists 命令Redis Script Flush 命令Redis Script kill 命令Redis Script Load 命令Redis 连接Redis Auth 命令Redis Echo 命令Redis Ping 命令Redis Quit 命令Redis Select 命令Redis 服务器Redis Bgrewriteaof 命令Redis Bgsave 命令Redis Client Kill 命令Redis Client List 命令Redis Client Getname 命令Redis Client Pause 命令Redis Client Setname 命令Redis Cluster Slots 命令Redis Command 命令Redis Command Count 命令Redis Command Getkeys 命令Redis Time 命令Redis Command Info 命令Redis Config Get 命令Redis Config rewrite 命令Redis Config Set 命令Redis Config Resetstat 命令Redis Dbsize 命令Redis Debug Object 命令Redis Debug Segfault 命令Redis Flushall 命令Redis Flushdb 命令Redis Info 命令Redis Lastsave 命令Redis Monitor 命令Redis Role 命令Redis Save 命令Redis Shutdown 命令Redis Slaveof 命令Redis Showlog 命令Redis Sync 命令Redis 高级教程Redis 数据备份与恢复Redis 安全Redis 性能测试Redis 客户端连接Redis 管道技术Redis 分区Java 使用 RedisPHP 使用 Redis
文字

Redis 事务


Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:

  • 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
  • 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。

一个事务从开始到执行会经历以下三个阶段:

  • 开始事务。
  • 命令入队。
  • 执行事务。

实例

以下是一个事务的例子, 它先以 MULTI 开始一个事务, 然后将多个命令入队到事务中, 最后由 EXEC 命令触发事务, 一并执行事务中的所有命令:

redis 127.0.0.1:6379> MULTI
OK

redis 127.0.0.1:6379> SET book-name "Mastering C++ in 21 days"
QUEUED

redis 127.0.0.1:6379> GET book-name
QUEUED

redis 127.0.0.1:6379> SADD tag "C++" "Programming" "Mastering Series"
QUEUED

redis 127.0.0.1:6379> SMEMBERS tag
QUEUED

redis 127.0.0.1:6379> EXEC
1) OK
2) "Mastering C++ in 21 days"
3) (integer) 3
4) 1) "Mastering Series"
   2) "C++"
   3) "Programming"

Redis 事务命令

下表列出了 redis 事务的相关命令:

序号 命令及描述
1 DISCARD
取消事务,放弃执行事务块内的所有命令。
2 EXEC
执行所有事务块内的命令。
3 MULTI
标记一个事务块的开始。
4 UNWATCH
取消 WATCH 命令对所有 key 的监视。
5 WATCH key [key ...]
监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。
上一篇:下一篇: