| |
|
开发:
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 集群方案目录 简介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 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |