Redis Cluster

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

概念

Redis Cluster采用多主多从的方式,支持开启多个主节点,每个主节点可以挂载多个从节点。

Cluster会将数据进行分片,将数据分散到多个主节点上,而每个主节点都可以对外提供读写服务。这种做法使得Redis突破了单机内存大小的限制,扩展了集群的存储容量。并且Redis Cluster也具备高可用性,因为每个主节点上都至少有一个从节点,当主节点挂掉时,Redis Cluster的故障转移机制会将某个从节点切换为主节点。

Redis Cluster是一个去中心化的集群,每个节点都会与其他节点保持互连,使用gossip协议来交换彼此的信息,以及探测新加入的节点信息。并且Redis无需任何代理,客户端会直接与集群中的节点直连。

分片方式

1.哈希取模

       类似HashMap的取模方式,只要hash计算的结果够分散,那么每个key都可以均匀分布到N个几点上。

       但是,如果要扩容或者缩容,会导致key重新计算存储位置,从而导致缓存失效。

2.一致性哈希

       将整个哈希值空间组织成一个虚拟的圆环。对key计算它的哈希值,确定它在环上的位置,从该位置沿着环顺指针的走,找到第一个节点,便是这个key应该存放的服务器节点的位置。

3.虚拟节点 + 一致性哈希

       映射关系为数据到虚拟节点,再由虚拟节点到实际节点。

集群搭建

1.由于Redis Cluster要求必须要至少6个节点,所以以最低要求3主3从为例。修改redis6390.conf --- redis6395.conf配置文件

       配置集群端口号

               port 6390

        开启守护进程

               deamonize yes  

       关闭保护模式

               protected-mode no

       将集群开启

               cluster-enabled yes

               cluster-config-file nodes-6390.conf

2.分配主从(--cluster-replicas 1:表示创建1主1从)

       ./redis-cli --cluster create 6组ip 端口 --cluster-replicas 1

3.分配完集群后,可能会报错---16384个槽位没有分配完。通过如下指令进行检查和修复

       redis-cli --cluster check 172.17.02:6379

       redis-cli --cluster fix 172.17.02:6379   #官方修复功能

相关实践学习
基于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
目录
相关文章
|
6天前
|
NoSQL Java Redis
Redis进阶-Jedis以及Spring Boot操作 Redis 5.x Cluster
Redis进阶-Jedis以及Spring Boot操作 Redis 5.x Cluster
54 0
|
6月前
|
NoSQL Java Redis
redis集群拓扑结构自动更新:使用Lettuce连接Cluster集群实例时异常处理(一)
redis集群拓扑结构自动更新:使用Lettuce连接Cluster集群实例时异常处理
391 0
|
6天前
|
存储 NoSQL Redis
docker搭建Redis Cluster集群环境
docker搭建Redis Cluster集群环境
97 1
|
6天前
|
存储 缓存 运维
软件体系结构 - 缓存技术(5)Redis Cluster
【4月更文挑战第20天】软件体系结构 - 缓存技术(5)Redis Cluster
144 10
|
6天前
|
运维 NoSQL 算法
Java开发-深入理解Redis Cluster的工作原理
综上所述,Redis Cluster通过数据分片、节点发现、主从复制、数据迁移、故障检测和客户端路由等机制,实现了一个分布式的、高可用的Redis解决方案。它允许数据分布在多个节点上,提供了自动故障转移和读写分离的功能,适用于需要大规模、高性能、高可用性的应用场景。
26 0
|
6天前
|
存储 NoSQL 网络协议
Redis Cluster 原理说的头头是道,这些配置不懂就是纸上谈兵
Redis Cluster 原理说的头头是道,这些配置不懂就是纸上谈兵
37 0
|
6天前
|
NoSQL Linux Redis
Redis 6.X Cluster 集群搭建
Redis 6.X Cluster 集群搭建
42 0
|
6天前
|
运维 NoSQL 算法
Redis cluster集群原理与配置
Redis cluster集群原理与配置
141 0
|
6天前
|
存储 NoSQL Redis
redis集群cluster
redis集群cluster
34 0
|
6天前
|
存储 NoSQL Redis
docker compose搭建Redis Cluster集群环境
docker compose搭建Redis Cluster集群环境
113 0