Redis(事务)

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis(事务)

本篇博客中 Redis 事务是和 MySQL 事务对比来说的(要不我也不会了 …)


Redis 事务是什么?

Redis 事务的主要意义是 把命令打包在一起执行, 避免其他客户端在我执行一些命令的过程中 插队. ("秒杀"场景, "超卖"问题)


Redis 事务 与 MySQL 事务 对比

相比较于 MySQL 事务的特性 ACID :

  • Redis 事务的原子性: 把多个命令打包在一起, 要么全部执行, 要么全部不执行 (不保证执行成功, 如果中间有失败命令, 不影响其他命令的执行).
  • Redis 事务不具有一致性: Redis 事务没有约束, 也不具有回滚操作, 事务执行过程中如果某个操作出错, 就会造成事务执行前后数据库数据不一致.
  • Redis 事务不具备持久性: Redis 是 内存数据库 , 数据存储在内存中. (ps: Redis 持久化和事务机制没有半毛钱关系, 那是另一套 Redis 机制) .
  • Redis 事务不涉及隔离性: Redis 是单线程模型, 所有请求/命令/ 事务 , 均是串行执行.

Redis 事务的执行

Redis 事务的执行: 开启事务后, 先让出 Redis 主线程, 将命令放入事务队列, 等待命令全部集齐, 事务执行, 此时将队列中的命令放入主线程顺序执行(其他客户端阻塞, 不允许中间插队)

Redis 事务相关命令

开启事务: MULTI

事务执行: EXEC

放弃事务: DISCARD

WATCH key1 key2 ...

监控某个 key, 是否在事务开启后, 事务执行前, 发生了变化

如果发生了变化, 那么本次事务会被直接放弃掉 (事务执行失败)

watch 命令本质是给 exec 命令加了层判定条件, 内部基于 版本号 这样的机制实现 (类似 乐观锁 的效果 )

相关实践学习
基于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四个命令。虽具备事务功能,但在实际开发中使用较少。 ```
50 7
|
1月前
|
NoSQL Redis 数据库
什么是Redis的事务?
Redis事务提供原子性和顺序性,确保命令按顺序执行且不被打断。核心概念包括原子性、顺序性、隔离性和持久性。关键指令有MULTI、EXEC、DISCARD和WATCH,用于事务的开始、执行、取消和监视。这保障了命令的完整性,防止并发操作导致的数据不一致。
20 2
|
1月前
|
缓存 监控 NoSQL
Redis之事务
【1月更文挑战第7天】Redis事务本质:一组命令的集合!一个事务中的所有命令都会被序列化,在事务执行过程中,会按照顺序执行!一次性、顺序性、排他性!执行一些列的命令。
177 1
|
1月前
|
缓存 NoSQL 数据处理
Redis事务悄然而至:命令的背后故事
Redis事务悄然而至:命令的背后故事
35 0
|
1月前
|
消息中间件 移动开发 NoSQL
Redis 协议 事务 发布订阅 异步连接
Redis 协议 事务 发布订阅 异步连接
|
1月前
|
缓存 监控 NoSQL
Redis之事务
Redis之事务
|
1月前
|
监控 NoSQL 关系型数据库
|
1月前
|
NoSQL Redis
Redis事务:保证数据操作的一致性和可靠性
Redis事务:保证数据操作的一致性和可靠性
|
1月前
|
监控 NoSQL Java
Redis数据库 | 事务、持久化
Redis数据库 | 事务、持久化
33 0
|
1月前
|
缓存 NoSQL Java
【Redis系列笔记】Redis事务
Redis事务的本质是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。
124 3