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 #官方修复功能

数据存放位置

在任意主节点添加数据会自动将数据分配到对应槽位的对应节点,不一定会保存在当前节点。

相关推荐
今天AI了吗1 小时前
Python 基础语法(一):常量、变量、输入输出与运算符
开发语言·数据库·人工智能·python·sql·深度学习·机器学习
阿里巴巴P8资深技术专家2 小时前
Redis连接工具 —— Redis Manager
redis
CDN3602 小时前
CDN 缓存策略优化实操:出海业务提升缓存命中率,TTL、缓存 Key、刷新配置与踩坑总结
缓存·cdn加速·cdn防护·360cdn
lilian2332 小时前
Harmony os 技术实战|拼豆制图27:用单字符编码承载 50 张 70×70 图纸
前端·数据库·华为·harmonyos
皮卡丘不断更3 小时前
手机优先的 Personal Ledger:把账目、学习和复盘放到同一个入口
数据库·sqlite·fastapi·开源项目·个人效率
保卫大狮兄3 小时前
设备管理从台账到报废,完整生命周期一次讲清
数据库·设备管理·设备
数据安全技术观察4 小时前
数据动态脱敏:让脱敏策略跟着数据目录走
大数据·网络·数据库
小席是个热心肠4 小时前
Redis的自我学习
数据库·redis·学习
2601_965798475 小时前
Salient Theme Setup Guide for Fast Creative WordPress Sites
数据库·web3·php·wordpress
@Mike@5 小时前
09-数据库学习笔记(数据库索引与过滤器)
数据库·笔记