Redis_集群_原生3.x集群模式_1|学习笔记

简介: 快速学习 Redis_集群_原生3.x集群模式_1

开发者学堂课程【Redis 数据库入门Redis_集群_原生3.x集群模式_1】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/15/detail/65


Redis_集群_原生3.x集群模式_1


内容介绍:

一、Redis Twemproxy


一、Redis Twemproxy

1.总结

  • 前端使用 Twemproxy 做代理,后端的Redis数据能基本上根据 key 来进行比较均衡的分布
  • 后端一台 Redis 挂掉后, Twemproxy 能够自动摘除。恢复后,Twemproxy 能够自动识别、恢复并重新加入到 Redis 组中重新使用
  • Redis 挂掉后,后端数据是否丢失依据 Redis 本身的持久化策略配置,与 Twemproxy 基本无关
  • 如果要新增加一台 Redis,Twemproxy 需要重启才能生效:并且数据不会自动重新 Reblance ,需要人工单独写脚本来实现
  • 如原来已经有2个节点 Redis,后续有增加2个 Redis ,则数据分布计算与原来的 Redis 分布无关现有数据如果需要分布均匀的话,需要人工单独处理
  • 如果 Twemproxy 的后端节点数量发生变化, Twemproxy 相同算法的前提下,原来的数据必须重新处理分布,否则会存在找不到 key 值的情况
  • 不管 Twemproxy 后端有几台 Redis,前端的单个 Twemproxy 的性能最大也只能和单台 Redis 性能差不多
  • 如同时部署多台 Twemproxy 配置一样,客户端分别连接多台 Twemproxy 可以在一定条件下提高性能

image.png

  • redis-mgr
  • 整合了通过整合复制、Sentinel 以及 twemproxy 等组件,提供了一站式的 Redis 服务器部署、监控、迁移功能,网址https://github.com/changyibiao/redis-mgr

2.Redis 集群

  • 3.0支持
  • 由多个 Redis 服务器组成的分布式网络服务集群
  • 每一个 Redis 服务器称为节点 Node ,节点之间会互相通信。两两相连
  • Redis 集群无中心节点

image.png

3.Redis 集群节点复制

  • Redis 集群的每个节点都有两种角色可选:主节点 masternode 从节点 slavenode,其中主节点用于存储数据,而从节点则是某个主节点的复制品
  • 当用户需要处理更多读请求的时候,添加从节点可以扩展系统的读性能,因为 Redis 集群重用了单机 Redis 复制特性的代码,所以集群的复制行为和我们之前介绍的单机复制特性的行为是完全一样的 

image.png

4.Redis 集群故障转移

  • Redis 集群的主节点内置了类似 RedisSentinel 的节点故障检测和自动故障转移功能,当集群中的某个主节点下线时,集群中的其他在线主节点会注意到这一点,并对已下线的主节点进行故障转移
  • 集群进行故障转移的方法和 RedisSentinel 进行故障转移的方法基本一样,不同的是,在集群里面,故障转移是由集群中其他在线的主节点负责进行的,所以集群不必另外使Redis Sentinel

 image.png

5.Redis 集群分片

  • 集群将整1数据库分为16384个槽位 slot,所有 key 都数据这些 slot 中的一个,key 的槽位计算公式为slot number=crc16(key)%16384,其中 crc16为16位的循环冗余校验和函数
  • 集群中的每个主节点都可以处理0个至16383个槽,当16384

个槽都有某个节点在负责处理时,集群进入上线状态,并开始处理客户端发送的数据命令请求

  • 举例

a)三个主节点700070017002平均分片16384个 slot 槽位

b)节点7000指派的槽位为0到5460

c)节点7001指派的槽位为5461到10922

d)节点7002指派的槽位为10923到16383

6.Redi 集群 Redirect 转向

  • 由于 Redis集群无中心节点,请求会发给任意主节点
  • 主节点只会处理自己负责槽位的命令请求,其它槽位的命令请求,该主节点会返回客户端一个转向错误
  • 客户端根据错误中包含的地址和端口重新向正确的负责的主节点发起命令请求

image.png

7.Redis 集群搭建

  • 创建多个主节点
  • 为每一个节点指派 slot ,将多个节点连接起来,组成一个集群
  • 槽位分片完成后,集群进入上线状态
  • 6个节点:3个主节点,每一个主节点有一个从节点
相关文章
|
4月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
375 2
|
2月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
504 5
|
3月前
|
存储 监控 NoSQL
Redis高可用架构全解析:从主从复制到集群方案
Redis高可用确保服务持续稳定,避免单点故障导致数据丢失或业务中断。通过主从复制实现数据冗余,哨兵模式支持自动故障转移,Cluster集群则提供分布式数据分片与水平扩展,三者层层递进,保障读写分离、容灾切换与大规模数据存储,构建高性能、高可靠的Redis架构体系。
|
8月前
|
存储 NoSQL 数据库
Redis 逻辑数据库与集群模式详解
Redis 是高性能内存键值数据库,广泛用于缓存与实时数据处理。本文深入解析 Redis 逻辑数据库与集群模式:逻辑数据库提供16个独立存储空间,适合小规模隔离;集群模式通过分布式架构支持高并发和大数据量,但仅支持 database 0。文章对比两者特性,讲解配置与实践注意事项,并探讨持久化及性能优化策略,助你根据需求选择最佳方案。
316 5
|
3月前
|
存储 运维 NoSQL
Redis集群模式
Redis集群是一种分布式存储方案,旨在解决数据存储容量不足的问题。它通过将数据分片存储在多个节点上,实现数据的横向扩展。常见的分片算法包括哈希求余、一致性哈希和哈希槽分区。其中,Redis采用哈希槽分区算法,将数据均匀分配到16384个槽位中,每个分片负责一部分槽位。当节点故障时,集群通过故障检测和主从切换机制,确保服务的高可用性。集群还支持自动的数据迁移和负载均衡,保障系统稳定运行。
|
5月前
|
负载均衡 NoSQL Redis
【赵渝强老师】Redis的主从复制集群
Redis主从复制是指将一台Redis服务器的数据复制到其他Redis服务器,实现数据热备份、故障恢复、负载均衡及高可用架构的基础。主节点负责写操作,从节点同步数据并可提供读服务,提升并发处理能力。
167 5
|
4月前
|
存储 NoSQL 算法
Redis的集群架构与使用经验
本文介绍了Redis的集群架构与使用经验,包括主从复制、哨兵集群及Cluster分片集群的应用场景与实现原理。内容涵盖Redis主从同步机制、数据分片存储方式、事务支持及与Memcached的区别,并讨论了Redis内存用尽时的处理策略。适用于了解Redis高可用与性能优化方案。
|
7月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
2月前
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。
|
3月前
|
存储 缓存 NoSQL
Redis专题-实战篇二-商户查询缓存
本文介绍了缓存的基本概念、应用场景及实现方式,涵盖Redis缓存设计、缓存更新策略、缓存穿透问题及其解决方案。重点讲解了缓存空对象与布隆过滤器的使用,并通过代码示例演示了商铺查询的缓存优化实践。
219 1
Redis专题-实战篇二-商户查询缓存