Redis事务为啥不支持全部回滚

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis事务为啥不支持全部回滚

正文


Redis用它的高性能征服了我们,我们一些项目都在使用它来做缓存,实际上Redis是一个基于内存的数据库,他有2种文件的保存形式:AOF、RDB。但是既然是数据库,那么肯定有一定的方法实现一些事务操作。因为在我们平时的业务中,不可能是简单的一个一个的请求,肯定是多个操作一起执行,互相影响。


但是,在Redis执行事务的同时,如果出现错误,会导致redis提前的终止执行事务但是Redis不会全部的回滚之前执行的命令这是为什么呢?我在官网上找到了答案:

8.png

大概的意义就是说:

  • 仅当使用错误的语法(并且在命令队列期间无法检测到该问题)或针对持有错误数据类型的键调用Redis命令时,Redis命令才会失败:这实际上意味着失败的命令是编程错误的结果, 还有一种很可能在开发过程中而不是生产过程中发现的错误。
  • Redis在内部得到了简化和加快,因为它不需要回滚的能力。


一句来说就是,为了简单、方便。大部分的代码以及错误都可以在Redis执行生产命令的时候可以进行避免,所以为了简单方便,它是不支持全部的回滚的设计模式。这也是在提醒大家,在写程序的时候,应该万事具备只欠运行环境。将自己的错误在自己的程序逻辑里面处理掉,防止出现意想不到的错误。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1月前
|
NoSQL Redis 数据库
10- 你们用过Redis的事务吗 ? 事务的命令有哪些 ?
```markdown Redis事务包括MULTI、EXEC、DISCARD、WATCH四个命令。虽具备事务功能,但在实际开发中使用较少。 ```
41 7
|
1月前
|
NoSQL Redis 数据库
什么是Redis的事务?
Redis事务提供原子性和顺序性,确保命令按顺序执行且不被打断。核心概念包括原子性、顺序性、隔离性和持久性。关键指令有MULTI、EXEC、DISCARD和WATCH,用于事务的开始、执行、取消和监视。这保障了命令的完整性,防止并发操作导致的数据不一致。
14 2
|
3月前
|
缓存 NoSQL 数据处理
Redis事务悄然而至:命令的背后故事
Redis事务悄然而至:命令的背后故事
28 0
|
1月前
|
NoSQL Redis
Redis事务:保证数据操作的一致性和可靠性
Redis事务:保证数据操作的一致性和可靠性
|
1天前
|
监控 NoSQL 关系型数据库
深入浅出Redis(五):Redis的事务机制与ACID原则
深入浅出Redis(五):Redis的事务机制与ACID原则
|
2天前
|
监控 NoSQL 关系型数据库
Redis 事务 与 管道
Redis 事务 与 管道
7 0
|
13天前
|
缓存 NoSQL Java
【Redis系列笔记】Redis事务
Redis事务的本质是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。
40 3
|
1月前
|
监控 NoSQL Java
|
3月前
|
消息中间件 NoSQL Kafka
Redis事务与异步方式
Redis事务与异步方式
35 0
|
4月前
|
缓存 监控 NoSQL
腾讯二面:Redis 事务支持 ACID 么?
腾讯二面:Redis 事务支持 ACID 么?
72 0