05-redis事物
Posted 学画人生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了05-redis事物相关的知识,希望对你有一定的参考价值。
可以一次性执行多个命令,本质是一组命令的集合,一个事物中的所有命令都会序列化,按顺序的串行化执行而不会被其他命令插入,不许加塞。
一个列队中,一次性、顺序性、排他性的执行一系列命令 。
multi 开始一个事物块
exec 执行所有事物块内的命令
discard 取消事物
watch监测one的值,如果one的值在事物操作期间有改变,那么事物块中的所有语句就不会被执行。
watch的作用是:如果在事物执行之前这些key被其他命令锁改动,那么事物将会被打断
unwatch取消watch命令对所有key的监控
悲观锁:顾名思义,就是很悲观,每次去拿数据的时候都认为别人会去修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁,传统关系数据库里面就用到了很多这种锁机制,例如行锁,表锁,读锁,写锁都是在操作之前上锁。
乐观锁:每次去拿数据的时候认为别人不会修改,所以不会上锁,但是在更新的时候回判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制,乐观锁适用于多读的应用类型,这样可以提高吞吐量。乐观锁的策略是提交版本必须大于记录当前版本才能执行更新
简而言之redis事物就是:开启事物-》入队-》执行
以上是关于05-redis事物的主要内容,如果未能解决你的问题,请参考以下文章