redis事务简介
简介
Redis
事务可以一次执行多个命令。
命令
开启事务需要使用multi
命令就可以开启,然后输入命令,只有在exec
的时候事务才会被提交
127.0.0.1:6379> multi
OK
127.0.0.1:6379(TX)> set key opcai.top
QUEUED
127.0.0.1:6379(TX)> set key1 linux
QUEUED
127.0.0.1:6379(TX)> exec
1) OK
2) OK
discard
命令可以取消事务
127.0.0.1:6379> multi
OK
127.0.0.1:6379(TX)> set key1 opcai
QUEUED
127.0.0.1:6379(TX)> set os linux
QUEUED
127.0.0.1:6379(TX)> discard
OK
watch
命令可以防止key
被其他连接修改之后,事务提交重复修改了key
。
开启两个连接终端进行测试,一个终端在写事务的时候,暂时不要exec
,另一个终端,修改了set site www.opcai.top
,这时候事务就会提交失败。
127.0.0.1:6379> set site opcai
OK
127.0.0.1:6379> watch site
OK
127.0.0.1:6379> multi
OK
127.0.0.1:6379(TX)> set site opcai.top
QUEUED
127.0.0.1:6379(TX)> set os linux
QUEUED
127.0.0.1:6379(TX)> exec
(nil)
127.0.0.1:6379> get site
"www.opcai.top"
127.0.0.1:6379> get os
(nil)
可以使用unwatch
命令取消对所有key的监听,就可以正常提交了,但是有可能值跟预期的可能不一样。
总结
redis
虽然支持事务,但是不支持回滚操作。
- 原文作者:Linux运维菜
- 原文链接:https://www.opcai.top/post/2021/2021-07/redis-pipeline/
- 版权声明:本作品采用进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。