Redis

Redis 笔记(十一)-事务及 redis 乐观锁

2021-08-20  本文已影响0人  yjtuuige
--- 队列 set set set 执行---
127.0.0.1:6379> multi        # 开启事务
OK
127.0.0.1:6379(TX)> set k1 v1        # 命令入队
QUEUED
127.0.0.1:6379(TX)> set k2 v2
QUEUED
127.0.0.1:6379(TX)> get k1
QUEUED
127.0.0.1:6379(TX)> get k2
QUEUED
127.0.0.1:6379(TX)> keys *
QUEUED
127.0.0.1:6379(TX)> exec        # 执行事务
1) OK
2) OK
3) "v1"
4) "v2"
5) 1) "k2"
   2) "k1"
127.0.0.1:6379> multi
OK
127.0.0.1:6379(TX)> set k1 v1
QUEUED
127.0.0.1:6379(TX)> set k2 v2
QUEUED
127.0.0.1:6379(TX)> discard        # 放弃事务
OK
127.0.0.1:6379> exec
(error) ERR EXEC without MULTI        # 当前未开启事务
127.0.0.1:6379> get k1        # 被放弃事务中,命令并未执行
(nil)

虽然中间有一条命令报错了,但是后面的指令依旧正常执行成功了。
所以说 Redis 单条指令保证原子性,但是 Redis 事务不能保证原子性。

上一篇下一篇

猜你喜欢

热点阅读