
Linux 下 Redis Cluster 安装与部署一、环境信息系统主机密码内存端口CentOS-7192.168.4.81jxbd816G主7001备7002CentOS-7192.168.4.82jxbd826G主7001备7002CentOS-7192.168.4.85jxbd856G主7001备7002三台服务器每台部署一主一从7001 / 7002共 3 主 3 从。二、安装部署步骤一、81 服务器解压 redis.zip 包redis.zip是 X86 的已编译包unzipredis.zip二、81 服务器修改 redis 的配置文件端口为 7001mvredis redis7001cdredisviredis.conf修改 redis 的参数#注释掉bind#bind 127.0.0.1#默认不是守护进程方式运行这里可以修改daemonizeyes#禁用保护模式protected-mode no#端口号port7001#数据存取路径dir/opt/redis7001/data/#修改密码requirepass jxbd三、81 服务器复制 slave 的 redis端口改为 7002cp/opt/redis7001 /opt/redis7002修改 redis 的参数#端口号port7002#数据存取路径dir/opt/redis7002/data/四、复制 81 的主备 redis 到 82 和 85 服务器scp-r/opt/redis* root192.168.4.82:/opt/scp-r/opt/redis* root192.168.4.85:/opt/五、81 启动 redis 服务82、85 雷同cd/opt/redis7001/chmod777redis-server ./redis-server redis.confcd/opt/redis7002/chmod777redis-server ./redis-server redis.conf六、redis 集群的初始化在任一一台服务器上初始化创建集群cd/opt/redis7001/chmod777redis-cli ./redis-cli-ajxbd--clustercreate192.168.4.81:7001192.168.4.81:7002192.168.4.82:7001192.168.4.82:7002192.168.4.85:7001192.168.4.85:7002 --cluster-replicas1中间的一些询问输入yes。七、redis 集群的登录测试登录集群-c表示以集群模式登录./redis-cli-ajxbd-c-h127.0.0.1-p7001查看集群信息cluster info查看节点信息cluster nodes至此 Redis 的集群安装成功三、Redis 集群扩容添加新节点一、创建节点接上文在 H1 服务器/root/soft目录下创建 7002 目录。将 7001 目录的配置文件redis.conf拷贝到 7002并修改配置文件的端口。进入 redis 目录下执行启动命令./redis-server../7002/redis.conf进入 H2 创建 7002 的 slave步骤与前三个步骤一样。二、添加主节点第一个ip:port为需要添加的节点 ip 和端口第二个ip:port为当前集群中的节点和端口先后执行以下命令./redis-cli--clusteradd-node192.168.4.86:7001192.168.4.81:7001-ajxbd在 H1 进入 redis 客户端查看集群的健康状态和节点状态。三、分配哈希槽注意新添加的节点是没有哈希槽的所以并不能正常存储数据需要给新添加的节点分配哈希槽哈希槽的配置不均匀可能导致数据不同步。重新分配哈希槽# ip:port 为当前 redis 集群任意节点 ip 和 port-a 后面加密码./redis-cli--clusterreshard192.168.4.86:7001-ajxbd输入要分配多少个哈希槽数量比如要分配 1000 个哈希槽。输入指定要分配哈希槽的节点 ID如上端口号为 7002 的两个 master 节点哈希槽的数量为 0选择任意一个节点作为目标节点进行分配哈希槽。选择需要分配的哈希槽来源输入all。输入all需要分配给目标节点的哈希槽来自当前集群的其他主节点每个节点拿出的数量由集群自动决定。是否继续执行建议的 reshard 计划输入yes后就会完成分配哈希槽进入 redis 客户端cluster slots查看7002 端口的主节点的原哈希槽数量为 0。四、分配哈希槽有两种方式1将所有节点用作哈希槽的源节点all2在指定的节点拿出指定数量的哈希槽分配到目标节点done上述使用的是第一种方式分配哈希槽现在讲一下用第二种方式怎么分配现在我们对 7002 端口的另一个 master 进行分配哈希槽./redis-cli--clusterreshard192.168.4.86:7001-ajxbd这里输入给目标节点选择分配 1000 个哈希槽并输入要给哪个节点分配哈希槽就输入哪个节点的 ID。先输入源节点 ID哈希从哪里来的然后再输入done。此时正在从源节点迁移哈希槽。是否继续执行建议的 reshard 计划Do you want to proceed with the proposed reshard plan (yes/no)?输入yes。执行结束后用cluster slots查看。五、添加从节点比如添加 7008 节点slave 的添加方法master 为 7007节点 ID 是主节点的 ID127.0.0.1:7008是新加的从节点127.0.0.1:7007作为从节点的主节点./redis-cli--clusteradd-node --cluster-slave --cluster-master-id db10a9d5c1662d9e3cee21c5776f2e9709f76619192.168.4.86:7002192.168.4.86:7001