千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:上海千锋IT培训  >  技术干货  >  redis似乎并没有“事务”,那些用到“事务”的人在做什么?

redis似乎并没有“事务”,那些用到“事务”的人在做什么?

来源:千锋教育
发布人:xqq
时间: 2023-10-17 16:43:35

一、redis似乎并没有“事务”,那些用到“事务”的人在做什么

Redis主要是针对单个key,或者说,单个数据对象的操作,这样,事务里的多对象Atomic要求就很低。

当Redis的命令执行多对象操作,比如MSET命令,或者Redis的Transaction命令(也含LUA),涉及多数据对象时,其内部,是顺序执行的(这也是我们说的,Redis是单线程架构),相当于传统DB的Serialize级别。这时,ACID里的Isolation在Redis里就极其简化,因为不存在两个并发事务互相的干扰,即Redis不存在并发命令。

Redis的Transaction命令,不是严格意义的事务,因为缺乏Rollback。

磁盘的AOF或RDB文件,只是个备份,不是传统意义上的DB的Dataset包含磁盘数据的概念,所以,把Redis的磁盘数据,看成整个Dataset的一部分,是不对的,还是只考虑Redis的内存特性,即它是内存数据库。

Redis 只是提供了简单的事务功能。其本质是一组命令的集合,事务支持一次执行多个命令,在事务执行过程中,会顺序执行队列中的命令,其他客户端提交的命令请求不会插入到本事务执行命令序列中。命令的执行过程是顺序执行的,但不能保证原子性。无法像 MySQL 那样,有隔离级别,出了问题之后还能回滚数据等高级操作。

延伸阅读:

二、Redis事务的应用场景

在分布式系统和高并发场景下,事务处理具有重要意义。Redis事务可以确保数据的一致性,避免并发操作导致的数据不一致问题。以下是一些Redis事务的应用场景:

批量操作:Redis 事务可以将多个命令打包成一个单元来执行,可以减少与 Redis 服务器的通信次数,从而提高性能。数据库迁移:在迁移数据时,需要保证数据一致性。通过Redis事务,可以确保数据在迁移过程中不会出现不一致的情况。分布式锁:在分布式系统中,为了保证数据的一致性,需要实现分布式锁。通过Redis事务,可以在同一个事务中执行锁定、解锁等操作,确保锁的原子性。

这些应用场景展示了Redis事务在实际应用中的价值。接下来,我们将详细介绍Redis事务的基本命令、特性和实现原理。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

用什么工具做局域网报表填报系统?

2023-10-17

redis似乎并没有“事务”,那些用到“事务”的人在做什么?

2023-10-17

为什么列存储数据库读取速度会比传统的行数据库快?

2023-10-17

最新文章NEW

设计数据库时,数据库名和表名是否需要前缀,优缺点是什么?

2023-10-17

作为一个K-V数据库,levelDB索引为什么要使用LSM树实现,而不采用哈希索引?

2023-10-17

为什么要用模块化、组件化才能完成 Android 项目中类加载功能?

2023-10-17

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>