17.6 redis5.0.4集群搭建步骤
redis5.0新特性
Redis 5主要专注于几个重要功能。相比之下Redis 4非常非常专注于操作类型,Redis 5的变化大多是面向用户的。即在现有的基础上增加新的数据类型和操作类型。以下是此版本的主要功能:
新的Stream数据类型。[1]
新的Redis模块API:Timers and Cluster API。
RDB现在存储LFU和LRU信息。
集群管理器从Ruby(redis-trib.rb)移植到C代码。可以在redis-cli中。查看redis-cli —cluster help了解更多信息。
新sorted set命令:ZPOPMIN / MAX和阻塞变量。
主动碎片整理V2。
增强HyperLogLog实现。
更好的内存统计报告。
许多带有子命令的命令现在都有一个HELP子命令。
客户经常连接和断开连接时性能更好。
错误修复和改进。
Jemalloc升级到5.1版
Redis 4.0大多是5.0的严格子集,应用程序从4.0升级到5.0通常不会碰见问题
集群安装
下载
解压编译
修改相关内核参数
提前做好下面的准备操作,否则redis日志里会有相应报错
打开/etc/sysctl.conf配置文件,追加一下参数
刷新内参参数,使其生效
修改配置文件
将配置文件修改为
线上最好开启密码认证
databases 最好改一下
开启防火墙
以上步骤均在6台主机上执行
初始化redis集群
查看redis集群状态
相关操作
检查集群
查看集群key、slot、slave分布信息
在线迁移槽
方式1
选择一个目标节点的id
源选择all
方式2
将所有master上的slot重新分配到一个master上
平衡各节点槽数量
删除集群节点
这里必须是没有槽的节点,所以必须先移除槽,否则报错 被删除的node重启后,依然记得集群中的其它节点,这是需要执行cluster forget nodeid来忘记其它节点
添加集群节点
将集群外部redis实例中的数据导入到集群中去
在redis5中 redis-cli已经集成集群操作的命令, 根本不用把分片迁移到一个节点再操作
把单实例的密码清除
把Redis单实例及集群所有节点的密码清理掉,通过如下方式:
执行集群导入命令【redis-cli -- cluster import】
Cluster-from后面跟外部redis的ip和port 如果只使用cluster-copy,则要导入集群中的key不能在,否则如下: 如果集群中已有同样的key,如果需要替换,可以cluster-copy和cluster-replace联用,这样集群中的key就会被替换为外部的
设置回原来的密码
注意,如果不清楚密码会报如下错误:
ERR Target instance replied with error: NOAUTH Authentication required.
清空集群数据
redis中数据存储比较多,需要进行清理。我们首先用命令查看集群的主从情况。
连接到每个master 节点上进行数据删除
连接到数据库中,执行如下命令
参考链接:
https://www.jianshu.com/p/7a28d3c92dce
Last updated
Was this helpful?