Linux(Centos7)Redis集群的搭建

    科技2025-07-11  15

    Redis集群的搭建

    集群中有三个节点的集群,每个节点有一主一从。需要6台虚拟机。 搭建一个伪分布式的集群,需要使用6个redis实例来模拟

    开发环境的搭建 搭建环境需要使用官方提供的ruby脚本。因此需要安装ruby的环境。安装ruby redis集群管理工具redis-trib.rb依赖ruby环境,首先需要安装ruby环境:

    安装ruby

    yum install ruby yum install rubygems

    安装ruby和redis的接口程序 拷贝redis-3.0.0.gem至(指定的目录下面) 例如(/usr/local)下 注:redis-3.0.0.gem这个文件是需要自己下载的 执行:

    gem install /usr/local/redis-3.0.0.gem 集群节点的规划 这里在同一台服务器用不同的端口表示不同的redis服务器,如下: 语法:ip地址:端口(查看ip地址的命令为ifconfig) 主节点:192.168.152.130 :7001192.168.152.130 :7002 192.168.152.130 :7003 从节点:192.168.152.130 :7004 192.168.152.130 :7005 192.168.152.130 :7006 在/usr/local下创建redis-cluster目录,其下创建7001、7002。。7006目录,如下:

    操作方法,就是将单机版本的bin目拷贝到redis-clusster下面 注意:拷贝完毕之后要移除快照dump.rdb

    将redis安装目录bin下的文件拷贝到每个700X目录内,同时将redis源码目录src下的redis-trib.rb拷贝到redis-cluster目录下。

    修改每个700X目录下的redis.conf配置文件: 端口 port XXXX

    bind 192.168.152.130 (ip地址)

    cluster-enabled 改为yes

    启动每一个节点 采用脚本的方式来启动6个redis实例 命令:vim startall.sh cd redis01 ./redis-server redis.conf cd ../ cd redis02 ./redis-server redis.conf cd ../ cd redis03 ./redis-server redis.conf cd ../ cd redis04 ./redis-server redis.conf cd ../ cd redis05 ./redis-server redis.conf cd ../ cd redis06 ./redis-server redis.conf

    执行脚本命令:

    chmod +x startall.sh 执行创建集群命令 执行redis-trib.rb,此脚本是ruby脚本,它依赖ruby环境。 ./redis-trib.rb create --replicas 192.168.152.130:7001 192.168.152.130:7002 192.168.152.130:7003 192.168.152.130:7004 192.168.152.130:7005 192.168.152.130:7006

    说明:redis集群至少需要3个主节点,每个主节点有一个从节点总共6个节点 replicas指定为1表示每个主节点有一个从节点

    注意: 如果执行时报如下错误: [ERR] Node XXXXXX is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0 解决方法是删除生成的配置文件nodes.conf,如果不行则说明现在创建的结点包括了旧集群的结点信息,需要删除redis的持久化文件后再重启redis,比如:appendonly.aof、dump.rdb

    测试 集群创建成功登陆任意redis结点查询集群中的节点情况。 客户端以集群方式登陆: 说明: ./redis-cli -c -h 192.168.152.130 -p 7001 ,其中-c表示以集群方式连接redis,-h指定ip地址,-p指定端口号 cluster nodes 查询集群结点信息

    cluster info 查询集群状态信息

    关闭集群 可以编写一个redis集群的关闭脚本 vim stopall.sh redis01/redis-cli -c -h 192.168.152.130 -p 7001 shutdown redis01/redis-cli -c -h 192.168.152.130 -p 7002 shutdown redis01/redis-cli -c -h 192.168.152.130 -p 7003 shutdown redis01/redis-cli -c -h 192.168.152.130 -p 7004 shutdown redis01/redis-cli -c -h 192.168.152.130 -p 7005 shutdown redis01/redis-cli -c -h 192.168.152.130 -p 7006 shutdown chmod +x stopall.sh
    Processed: 0.011, SQL: 8