当前位置:网站首页>Redis:Redis的事务
Redis:Redis的事务
2022-07-04 22:43:00 【dengfengling999】
Redis的事务允许在一次单独的步骤中执行一组命令,并且能够保证将一个事务中的所有命令序列化,然后按顺序执行;在一个Redis事务中,Redis要么执行其中的所有命令,要么什么都不执行。即Redis的事务要能够保证序列化和原子性。
Redis的事务只能保持部分原子性,不能保持完全原子性,数据可能存在不一致
Redis对事物进行了简化,为什么简化?它要提高它的访问效率,它不考虑那么多事务的移植性
- Redis事务的常用命令:
- multi
语法:multi
功能:用于标记事务块的开始。Redis会将后续的命令逐个放入队列中,然后才能使用EXEC命令原子化地执行这个命令序列。
返回值:开启成功返回OK
例如:
2.exec
语法:exec
功能:在一个事务中执行所有先前放入队列的命令,然后恢复正常的连接状态。
如果在把命令压入队列的过程中报错,则整个队列中的命令都不会执行,执行结果报错;
如果在压队列的过程中正常,在执行队列中某一个命令报错,则只会影响本条命令的执行结果,其它命令正常运行;
当使用WATCH命令时,只有当受监控的键没有被修改时,EXEC命令才会执行事务中的命令;而一旦执行了exec命令,之前加的所有watch监控全部取消。
返回值:这个命令的返回值是一个数组,其中的每个元素分别是原子化事务中的每个命令的返回值。 当使用WATCH命令时,如果事务执行中止,那么EXEC命令就会返回一个Null值。
inc k1 :对数值型k1 进行加一,如果不是数值型的话汇报错,在压入对列的时候不会真正执行,所以不知道k1是不是数值型
例如:压入对列报错,都不执行,保持原子性
压入对列不报错:
3.discard
语法:discard
功能:清除所有先前在一个事务中放入队列的命令,并且结束事务。
如果使用了WATCH命令,那么DISCARD命令就会将当前连接监控的所有键取消监控。
返回值:清除成功,返回OK。
例如:
4.watch
语法:watch key [key …]
功能:当某个事务需要按条件执行时,就要使用这个命令将给定的键设置为受监控的。如果被监控的key值在本事务外有修改时,则本事务所有指令都不会被执行。Watch命令相当于关系型数据库中的乐观锁。
返回值:监控成功,返回OK。
decrby:减指定值 incrby:加指定值
例如:
建立另外一个连接进行更改vcersion
5.unwatch
语法:unwatch
功能:清除所有先前为一个事务监控的键。
如果在watch命令之后你调用了EXEC或DISCARD命令,那么就不需要手动调用UNWATCH命令。
返回值:清除成功,返回OK。
例如:清除所有监控的
改变version:
Redis事务小结:
1、单独的隔离操作:事务中的所有命令都会序列化、顺序地执行。事务在执行过程中,不会被其它客户端发来的命令请求所打断,除非使用watch命令监控某些键。
2、不保证事务的原子性:redis同一个事务中如果一条命令执行失败,其后的命令仍然可能会被执行,redis的事务没有回滚。Redis已经在系统内部进行功能简化,这样可以确保更快的运行速度,因为Redis不需要事务回滚的能力。
边栏推荐
- JS 3D explosive fragment image switching JS special effect
- Redis入门完整教程:Bitmaps
- 企业如何跨越数字化鸿沟?尽在云原生2.0
- Detailed explanation of heap sort code
- A complete tutorial for getting started with redis: redis usage scenarios
- 位运算符讲解
- Redis introduction complete tutorial: List explanation
- Redis introduction complete tutorial: client communication protocol
- C语言快速解决反转链表
- Taobao commodity review API interface (item_review get Taobao commodity review API interface), tmall commodity review API interface
猜你喜欢
Advanced area a of attack and defense world misc Masters_ good_ idea
攻防世界 MISC 进阶区 hong
Excel 快捷键-随时补充
A complete tutorial for getting started with redis: hyperloglog
攻防世界 misc 高手进阶区 a_good_idea
Redis入门完整教程:有序集合详解
智力考验看成语猜古诗句微信小程序源码
[roommate learned to use Bi report data processing in the time of King glory in one game]
Redis入门完整教程:Bitmaps
[sword finger offer] questions 1-5
随机推荐
【室友用一局王者荣耀的时间学会了用BI报表数据处理】
Unity vscode emmylua configuration error resolution
Attack and defense world misc advanced grace-50
位运算符讲解
[ODX studio edit PDX] - 0.2-how to compare two pdx/odx files of compare
The overview and definition of clusters can be seen at a glance
Google Earth engine (GEE) -- take modis/006/mcd19a2 as an example to batch download the daily mean, maximum, minimum, standard deviation, statistical analysis of variance and CSV download of daily AOD
[graph theory] topological sorting
共创软硬件协同生态:Graphcore IPU与百度飞桨的“联合提交”亮相MLPerf
Summary of index operations in mongodb
Redis入门完整教程:API的理解和使用
Analysis of the self increasing and self decreasing of C language function parameters
ECS settings SSH key login
Create Ca and issue certificate through go language
Is Huatai Securities a nationally recognized securities firm? Is it safe to open an account?
小程序vant tab组件解决文字过多显示不全的问题
攻防世界 MISC 进阶区 hit-the-core
Google Earth engine (GEE) - tasks upgrade enables run all to download all images in task types with one click
Analog rocker controlled steering gear
Feature scaling normalization