Redis事务管理

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

一,关系型数据库(sqlserver、mysql、oracle)的事务隔离机制说明

下面是设置MySQL数据库的事务隔离机制的sql语句:

set global transaction isolation level read uncommitted;

将全局事务隔离级别设置为未提交读取;

下面是事务隔离的几个机制:

1、read uncommitted(读取未提交的数据)

缺点:如果数据最终rollback了,那么读取的数据就错了

2、read committed(读取已经提交的数据)

缺点:如果在一个事务中,对通过一个数据进行了多次的读取。在多次读取的过程中,有人

提交了数据。那么多次读取的数据结果就会出现不一致。

3、repeatable read(重复读)

缺点:会出现幻读。

4、serializable(串行)

缺点:太慢

二,redis事务机制

1、 MULTI 与 EXEC命令

以 MULTI 开始一个事务,然后将多个命令入队到事务中, 最后由 EXEC 命令触发事务,

一并执行事务中的所有命令

2、 DISCARD命令

DISCARD 命令用于取消一个事务, 它清空客户端的整个事务队列, 然后将客户端从事

务状态调整回非事务状态, 最后返回字符串 OK 给客户端, 说明事务已被取消。

乐观锁:一个版本控制 update table set age=13 where v=1

悲观锁:

3、WATCH命令(类似乐观锁)

WATCH 命令用于在事务开始之前监视任意数量的键: 当调用 EXEC 命令执行事务时,

如果任意一个被监视的键已经被其他客户端修改了, 那么整个事务不再执行, 直接返回失败。

三,示例

3.1,示例一 这个例子中没有出现异常,所以所有的命令都成功了

3.2,这个例子中,在事务开启后,有一个命令执行出错了,那么所有的命令都不会执行

3.3,这个例子中出现了两个事务,两个事务都表示自己执行成功了,但是有一个发现值并不是自己设置的,被别人覆盖了

3.4,加上Watch age后,再来执行事务。

左边的再开启事务之后,exec执行之前,右边有另外一个事务对age进行了修改。那么左边的事务将执行失败

相关实践学习
基于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 算法
09- Redis分片集群中数据是怎么存储和读取的 ?
Redis分片集群使用哈希槽分区算法,包含16384个槽(0-16383)。数据存储时,通过CRC16算法对key计算并模16383,确定槽位,进而分配至对应节点。读取时,根据槽位找到相应节点直接操作。
66 12
|
1月前
|
NoSQL Linux Redis
06- 你们使用Redis是单点还是集群 ? 哪种集群 ?
**Redis配置:** 使用哨兵集群,结构为1主2从,加上3个哨兵节点,总计分布在3台Linux服务器上,提供高可用性。
368 0
|
1月前
|
负载均衡 监控 NoSQL
Redis的集群方案有哪些?
Redis集群包括主从复制(基础,手动故障恢复)、哨兵模式(自动高可用)和Redis Cluster(官方分布式解决方案,自动分片和容错)。此外,还有如Codis、Redisson和Twemproxy等第三方工具用于代理和负载均衡。选择方案需考虑应用场景、数据规模和并发需求。
290 2
|
2天前
|
存储 监控 NoSQL
Redis哨兵&分片集群
Redis哨兵&分片集群
6 0
|
3天前
|
NoSQL 算法 Java
深入浅出Redis(八):Redis的集群模式
深入浅出Redis(八):Redis的集群模式
|
9天前
|
NoSQL Redis
透视Redis集群:心跳检测如何维护高可用性
Redis心跳检测保障集群可靠性,通过PING命令检测主从连接状态,预防数据丢失。当连接异常时,自动触发主从切换。此外,心跳检测辅助实现`min-slaves-to-write`和`min-slaves-max-lag`策略,避免不安全写操作。还有重传机制,确保命令无丢失,维持数据一致性。合理配置心跳检测,能有效防止数据问题,提升Redis集群的高可用性。关注“软件求生”获取更多Redis知识!
115 10
透视Redis集群:心跳检测如何维护高可用性
|
11天前
|
监控 NoSQL 算法
Redis集群模式:高可用性与性能的完美结合!
小米探讨Redis集群模式,通过一致性哈希分散负载,主从节点确保高可用性。节点间健康检测、主备切换、数据复制与同步、分区策略和Majority选举机制保证服务可靠性。适合高可用性及性能需求场景,哨兵模式则适用于简单需求。一起学习技术的乐趣!关注小米微信公众号“软件求生”获取更多内容。
45 11
Redis集群模式:高可用性与性能的完美结合!
|
12天前
|
监控 NoSQL Redis
|
17天前
|
NoSQL Redis Docker
使用Docker搭建Redis主从集群
使用Docker搭建Redis主从集群
32 1