Redis 集群搭建
redis集群至少需要三个master节点,并且每个master节点再搭建一个slave节点,总共至少6个节点,由于节点较多,采用一台服务器创建6个redis实例,并将6个redis实例配置成集群模式,模拟出伪集群模式,但真正的分布式集群模式配置一样,搭建伪集群模式的步骤如下:
第一步:在/usr/local 下创建文件夹redis-cluster,然后在redis-cluster文件夹下创建9个文件夹如下
-
mkdir -p /usr/local/redis-cluster
-
mkdir 8001 8002 8003 8004 8005 8006 8007 8008 8009
第二步:把安装的redis.conf 拷贝进8001,修改如下内容
-
daemonize yes 后台服务模式启动
-
port 8001 端口
-
bind 114.55.116.177(必须要绑定当前机器的ip,这里方便redis集群定位机器,不绑定可能会出现循环查找集群节点机器的情况
-
dir /usr/local/redis-cluster/8001/ (指定数据文件存放的位置,必须指定不同的目录,不然会出现数据丢失)
-
cluster-enabled yes (启动集群模式)
-
cluster-config-file nodes-8001.conf (这里800*对应不同端口)
-
cluster-node-timeout 5000
-
appendonly yes
第三步:把8001下修改后的redis.conf copy到各个800X文件夹下,注意每个文件要修改第2,4,6里面的端口号,可以批量替换:
:%s/源字符串/目的字符串/g :%s/8001/8002/g
第四部:由于redis集群需要使用ruby命令,所以我们需要安装ruby
-
yum install ruby
-
yum install rubygems
-
gem install redis –version 3.0.6(安装redis 和ruby接口,redis版本号是多少就写多少)
第五步:分别启动9个redis实例,然后检查是否启动成功
-
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/800*/redis.conf
-
ps -ef | grep redis 查看是否启动成
第六步:在redis安装目录下执行redis-trib.rb命令创建整个redis集群
-
cd /usr/local/redis/src
-
./redis-trib.rb create –replicas 2 114.55.116.177:8001 114.55.116.177:8002 114.55.116.177:8003 114.55.116.177:8004 114.55.116.177:8005 114.55.116.177:8006 114.55.116.177:8007 114.55.116.177:8008 114.55.116.177:8009
注意事项:如果note节点设置了密码requirepass zzs888,则使用上面集群redis-trib.rb命令 会报 [ERR] Sorry, can't connect to node 114.55.116.177:8001
解决办法:vim /usr/local/rvm/gems/ruby-2.3.1/gems/redis-3.0.6/lib/redis/client.rb 修改password
注意:client.rb路径可以通过find命令查找:find / -name 'client.rb'
第七步:检测验证redis集群
1.使用 info 命令指定集群上任一节点的地址便可以查看集群状态
./src/redis-trib.rb info 114.55.116.177:8001
2.redis-cli -c -h 114.55.116.177 -p 8002 -a zzs@888 连接集群set get 查看下