redis 事物

redis 开启事物 

multi

执行事物

exec 

关闭事物

discard

悲观锁:很悲观,认为什么时候都会出问题,无论什么都会加锁。影响效率,实际情况一般会使用乐观锁。

乐观锁:很乐观,认为什么时候都不会出现问题,所以不上锁。更新数据的时候回判断一下,在此期间是否修改过监视的数据,也就是获取 version。

首先要了解redis事务中watch的作用,watch命令可以监控一个或多个键,一旦其中有一个键被修改(或删除),之后的事务就不会执行。监控一直持续到exec命令(事务中的命令是在exec之后才执行的,所以在multi命令后可以修改watch监控的键值)。假设我们通过watch命令在事务执行之前监控了多个Keys,倘若在watch之后有任何Key的值发生了变化,exec命令执行的事务都将被放弃,同时返回Null multi-bulk应答以通知调用者事务执行失败。

所以,需要注意的是watch监控键之后,再去操作这些键,否则watch可能会起不到效果。

 

posted @ 2020-12-08 17:21  旅行的青蛙  阅读(68)  评论(0编辑  收藏  举报