redis:事务

一.介绍

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

二.基本操作

开启事务:

multi

执行事务 

exec

取消事务 

discard

三.事务的注意事项

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

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

四.锁

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

watch key1 [key2……]

取消对所有 key 的监视 

unwatch

五.分布式锁

使用 setnx 设置一个公共锁 

setnx lock-key value 

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

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

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

分布式锁改良

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

expire lock-key second 
pexpire lock-key milliseconds
原文地址:https://www.cnblogs.com/wwjj4811/p/12737723.html