Loading

redis:事务

一.介绍

redis事务就是一个命令执行的队列,将一系列预定义命令包装成一个整体(一个队列)。当执行时,一次性 按照添加顺序依次执行,中间不会被打断或者干扰。 

二.基本操作

开启事务:

1
multi

执行事务 

1
exec

取消事务 

1
discard

三.事务的注意事项

1)如果定义的事务中所包含的命令存在语法错误,整体事务中所有命令均不会执行。包括那些语法正确的命令。

2)定义事务的过程中,命令执行出现错误。能够正确运行的命令会执行,运行错误的命令不会被执行 

四.锁

对 key 添加监视锁,在执行exec前如果key发生了变化,终止事务执行 

1
watch key1 [key2……]

取消对所有 key 的监视 

1
unwatch

五.分布式锁

使用 setnx 设置一个公共锁 

1
setnx lock-key value

利用setnx命令的返回值特征,有值则返回设置失败,无值则返回设置成功

  对于返回设置成功的,拥有控制权,进行下一步的具体业务操作

  对于返回设置失败的,不具有控制权,排队或等待

分布式锁改良

使用 expire 为锁key添加时间限定,到时不释放,放弃锁

1
2
expire lock-key second
pexpire lock-key milliseconds
posted @   秋风飒飒吹  阅读(113)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示