IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Redis Cluster集群方案 -> 正文阅读

[大数据]Redis Cluster集群方案

RedisCluster 集群方案

目录

RedisCluster 集群方案

简介

核心原理

配置

节点配置

集群配置

健康检查

常见管理手段

扩容-增加 Redis 节点

扩容-slot 自动平衡

缩容-slot 手动分配

缩容-删除 Redis 节点


简介

Redis 集群实现了一个数据分布式存储、节点水平扩容、故障自动转移的集群方案

1. 存储:

Redis 集群实现了对 Redis 的水平扩容,即启动 N 个 Redis 节点,将整个数据库分布存储在这 N 个节点中,每个节点存储总数据的 1/N

2. 水平扩容:

Redis 集群模式用来解决单 Redis 数据量瓶颈,并且不再需要配置单独的哨兵,可以进行水平扩展

3. 故障自动转移:

Redis 集群将 key 通过 crc16 运算后与 16384 取模,将 key 分布到固定 16384 个槽位(slot)中的一个(0-16383),每个 redis 分别保管不同 的槽位,不同的 Redis 子集群分管不同的槽位,每个子集可用一主多从实现,进行故障自动转移

4. 注意:

并且集群模式默认使用 db0 不支持 select 别的 db

核心原理

Redis 集群采用了哈希 Slot+主从节点实现了一个数据分布式存储、节点水平扩容、故障自动转移的集群方案

为了提高效率,Redis 集群客户端维护当前插槽配置的映射,比如像 Java 实现的 JedisCluster

配置

节点配置

1. redis.conf 单点增加配置

cluster-enabled yes

cluster-config-file nodes-{port}.conf

2. 节点数量

要求节点数量为 2*N=2 *N个节点

生产要求至少 2 台机器,保证挂掉一台机器或者一个节点后,服务仍能正常进行

而且主从不能配对在同一台机器上

3. 启动所有节点

以 cluster 模式启动 2*N 个 redis 服务

集群配置

1. 创建集群 ./redis-cli --cluster create 192.168.128.167:6381 192.168.128.167:6382 192.168.128.167:6383

192.168.128.167:6384

192.168.128.167:6385 192.168.128.167:6386 --cluster-replicas 1

2. 数据目录:这时候在数据目录下面会生成集群配置文件

健康检查

redis-cli --cluster info 192.168.128.167:6381

redis-cli --cluster check 192.168.128.167:6381

常见管理手段

扩容-增加 Redis 节点

准备单节点 (一主一丛)

按集群环境搭建的要求准备好单节点

192.168.128.167:6387 和 192.168.128.167:6388

添加主节点

redis-cli --cluster add-node 192.168.128.167:6387 192.168.128.167:6381

第一个节点为待加入的新节点,后面一个节点为集群中的任意节点

添加节点命令,默认是主节点

添加从节点

redis-cli --cluster add-node 192.168.128.167:6388 192.168.128.167:6381 --cluster-slave

不指定主节点时,由 Redis 自动分配,一般会自动加入没有从节点的主下面

redis-cli --cluster add-node 192.168.128.167:6388 192.168.128.167:6381 --cluster-slave --cluster-master-id

0d77af6e29a5d11ecb9cadbd6ceb282cceaca2c4

扩容-slot 自动平衡

当 Redis 集群中的节点出现新增时,我们需要对数据进行 slot 重新划配,有两种模式,自动平衡模式和手动划配模式

新增的时候我们一般采用自动平衡处理,这样方便快捷

自动平衡命令

./redis-cli --cluster rebalance 192.168.128.167:6381 --cluster-use-empty-masters --cluster-replace

缩容-slot 手动分配

当我们想要对 Redis 集群进行缩容时,在删除 Redis 节点前,我们必须对要删除的节点上的数据进行手动划配迁移缩容前的 key 分布

缩容-删除 Redis 节点

从节点可以随时移除,0 slot 的孤主节点可以随时移除(无从节点),其它主节点无法删除

红色框节点可以直接删除,1 号节点在删除对应的从节点后可以删除,2、3、4 号节点需要将数据迁走+删除对应的从节点后可删除

redis-cli --cluster del-node 192.168.128.167:6388 eba6e33d52b8d77832f3590de76ca53b6f78e71a

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 19:12:48  更:2022-08-19 19:13:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:00:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码