05-redis事物

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

一个列队中,一次性、顺序性、排他性的执行一系列命令 。

multi  开始一个事物块

exec 执行所有事物块内的命令

discard 取消事物

 



watch监测one的值,如果one的值在事物操作期间有改变,那么事物块中的所有语句就不会被执行。

watch的作用是:如果在事物执行之前这些key被其他命令锁改动,那么事物将会被打断 

unwatch取消watch命令对所有key的监控

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

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

简而言之redis事物就是:开启事物-》入队-》执行 

 

posted @ 2018-07-29 12:53  学画人生  阅读(120)  评论(0编辑  收藏  举报