Redis

Redis事务

2020-06-13  本文已影响0人  码农GG

描述

可以一次执行多个命令,本质是一组命令的集合。一个事务中的
所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞(一个队列中,一次性、顺序性、排他性的执行一系列命令)。

redis事务命令

image.png

1.正常执行

开启:以MULTI开始一个事务
入队:将多个命令入队到事务中,接到这些命令并不会立即执行,而是放到等待执行的事务队列里面
执行:由EXEC命令触发事务

image.png

2.放弃事务

image.png

3.全体连坐

image.png

4.冤头债主

image.png

watch监控

1.悲观锁/乐观锁/CAS(Check And Set)

初始数据

image.png

悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。

乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量,
乐观锁策略:提交版本必须大于记录当前版本才能执行更新

cas

2.无加塞篡改

image.png

3.有加塞篡改

image.png

4.unwatch

image.png

小结

特性

上一篇 下一篇

猜你喜欢

热点阅读