redis事务的使用

发布时间:2022-01-12 22:41:04 阅读:1150次

https://www.youtube.com/watch?v=aCXsdLjQLcM

我们知道事务有几种特性

原子性

一致性

隔离性

持久性

而redis的事务不完全具有原子性

127.0.0.1:6379> multi
OK
127.0.0.1:6379(TX)> set key value
QUEUED
127.0.0.1:6379(TX)> set a 1
QUEUED
127.0.0.1:6379(TX)> incr key
QUEUED
127.0.0.1:6379(TX)>
127.0.0.1:6379(TX)> set a aa
QUEUED
127.0.0.1:6379(TX)> exec
1) OK
2) OK
3) (error) ERR value is not an integer or out of range
4) OK
127.0.0.1:6379> get a
"aa"

发现事务在执行过程中,发生错误,不影响后面命令的执行

127.0.0.1:6379>
127.0.0.1:6379> multi
OK
127.0.0.1:6379(TX)> set a
(error) ERR wrong number of arguments for 'set' command
127.0.0.1:6379(TX)>
127.0.0.1:6379(TX)> set b 1
QUEUED
127.0.0.1:6379(TX)> exec
(error) EXECABORT Transaction discarded because of previous errors.
127.0.0.1:6379> get b
(nil)

如果是语法有问题,则具有原子性

如有问题,可以QQ搜索群1028468525加入群聊,欢迎一起研究技术

支付宝 微信

有疑问联系站长,请联系QQ:QQ咨询

转载请注明:redis事务的使用 出自老鄢博客 | 欢迎分享