17.6 redis5.0.4集群搭建步骤

redis5.0新特性

Redis 5主要专注于几个重要功能。相比之下Redis 4非常非常专注于操作类型,Redis 5的变化大多是面向用户的。即在现有的基础上增加新的数据类型和操作类型。以下是此版本的主要功能:

  1. 新的Stream数据类型。[1]

  2. 新的Redis模块API:Timers and Cluster API。

  3. RDB现在存储LFU和LRU信息。

  4. 集群管理器从Ruby(redis-trib.rb)移植到C代码。可以在redis-cli中。查看redis-cli —cluster help了解更多信息。

  5. 新sorted set命令:ZPOPMIN / MAX和阻塞变量。

  6. 主动碎片整理V2。

  7. 增强HyperLogLog实现。

  8. 更好的内存统计报告。

  9. 许多带有子命令的命令现在都有一个HELP子命令。

  10. 客户经常连接和断开连接时性能更好。

  11. 错误修复和改进。

  12. 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已经集成集群操作的命令, 根本不用把分片迁移到一个节点再操作

  1. 把单实例的密码清除

把Redis单实例及集群所有节点的密码清理掉,通过如下方式:

  1. 执行集群导入命令【redis-cli -- cluster import】

Cluster-from后面跟外部redis的ip和port 如果只使用cluster-copy,则要导入集群中的key不能在,否则如下: 如果集群中已有同样的key,如果需要替换,可以cluster-copy和cluster-replace联用,这样集群中的key就会被替换为外部的

  1. 设置回原来的密码

  • 注意,如果不清楚密码会报如下错误:

    ERR Target instance replied with error: NOAUTH Authentication required.

清空集群数据

redis中数据存储比较多,需要进行清理。我们首先用命令查看集群的主从情况。

连接到每个master 节点上进行数据删除

连接到数据库中,执行如下命令

参考链接:

https://yangxx.net/?p=3453

https://www.jianshu.com/p/7a28d3c92dce

https://blog.csdn.net/luoww1/article/details/88425263

https://www.cnblogs.com/kevingrace/p/9844310.html

Last updated

Was this helpful?