Redis事务

11 篇文章 1 订阅
Redis事务
Redis事务可以一次执行多个命令,并且带有以下两个重要保证:
  • 批量操作在发送EXEC命令前被放入队列缓存
  • 收到EXEC命令后进入事务执行,事务中任何命令执行失败,其余命令依然被执行
  • 在事务执行过程中,其他客户端提交的命令请求不会插入到实物执行命令序中。

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

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

实例

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

127.0.0.1:6379> set book-name "mastering C++ in 21 days"
QUEUED
127.0.0.1:6379> get book-name
QUEUED
127.0.0.1:6379> sadd tag "C++" "Programming" "Mastering Series"
QUEUED
127.0.0.1:6379> smembers tag
QUEUED
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"
127.0.0.1:6379> smembers tag
1) "Mastering Series"
2) "C++"
3) "Programming"

discard

描述:取消事务,放弃执行事务块内的所有命令。

返回值:总是返回OK

127.0.0.1:6379> multi
OK
127.0.0.1:6379> ping
QUEUED
127.0.0.1:6379> set greeting "hello"
QUEUED
127.0.0.1:6379> discard
OK

exec

描述:用于执行所有事务块内的命令

返回值:按命令执行的先后顺序排列,当操作被打断时,返回控制nil

127.0.0.1:6379> multi
OK
127.0.0.1:6379> incr user_id
QUEUED
127.0.0.1:6379> incr user_id
QUEUED
127.0.0.1:6379> incr user_id
QUEUED
127.0.0.1:6379> ping
QUEUED
127.0.0.1:6379> exec
1) (integer) 1
2) (integer) 2
3) (integer) 3
4) PONG
127.0.0.1:6379> get user_id
"3"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值