1.环境介绍
三台redhat,使用redis-4.0.6,每台服务器2个节点,共6个节点,三主三备。(若没有这么多资源,可不要备份节点、必须有三个主节点)
2.下载并分别解压
下载地址:http://download.redis.io/releases/
解压tar -zxvf redis-4.0.6.tar.gz
3.分别编译安装
cd redis-4.0.6
make && make install
4.将 redis-trib.rb 复制到 /usr/local/bin 目录下(可不复制,直接在原路径下执行)
cd src
cp redis-trib.rb /usr/local/bin/
5.创建 Redis 节点和集群
1)在{REDIS_HOME}下新建目录clusterconfs,并在此目录下新建两个目录6998、6999(使用需要启动redis的端口号,用于存放每个端口的redis.conf)
mkdir clusterconfs
cd clusterconfs
mkdir 6998
mkdir 6999
2)拷贝{REDIS_HOME}/redis.conf至{REDIS_HOME}/clusterconfs/6998下
cp –r redis.conf clusterconfs/6998/
3)修改{REDIS_HOME}/clusterconfs/6998下redis.conf配置,参照下表
bind 本机ip //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群 port 6998 //端口6998 daemonize yes //redis后台运行 pidfile /var/run/redis_6998.pid //pidfile文件对应7000,7001,7002 appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志 cluster-enabled yes //开启集群 把注释#去掉 cluster-config-file nodes_6998.conf //集群的配置 配置文件首次启动自动生成6998 cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置 |
4)复制{REDIS_HOME}/clusterconfs/6998/redis.conf至{REDIS_HOME}/clusterconfs/6999/redis.conf,并修改6999/redis.conf中所有的“6998”为“6999”
5)分发此机器中的clusterconfs至另外两台服务器相应位置,并修改6998和6999目录下redis.conf 中的ip为真实ip
scp –r /root/redis/clusterconfs [email protected]:/root/redis/clusterconfs
scp –r /root/redis/clusterconfs [email protected]:/root/redis/clusterconfs
6)在每台服务器的{REDIS_HOME}/src/下分别启动各个节点
./redis-server ../clusterconfs/6998/redis.conf
./redis-server ../clusterconfs/6999/redis.conf
7)分别检查 redis 启动情况,出现6998、6999端口即可
ps -ef | grep redis
8)创建集群,{REDIS_HOME}/src/下在使用以下命令
redis-trib.rb create --replicas 1 192.168.31.245:7000 192.168.31.245:7001 192.168.31.245:7002 192.168.31.210:7003 192.168.31.210:7004 192.168.31.210:7005 |
9)如出现错误‘cannot load such file…require.rb’,需要安装ruby,参照本文档第6、7节
yum -y install ruby ruby-devel rubygems rpm-build gem install redis |
10)之后再运行 redis-trib.rb 创建集群命令,会出现如下提示(图从网上找的,端口不一样)
输入 yes 即可,然后出现如下内容,说明安装成功
11)集群验证
在两台服务器{REDIS_HOME}/src/下使用如下命令分别进入两个不同端口的redis
./redis-cli -h 10.1.26.129 -c -p 6998
./redis-cli -h 10.1.26.130 -c -p 6999
(加参数 -C 可连接到集群,因为上面 redis.conf 将 bind 改为了ip地址,所以 -h 参数不可以省略。)
在第一个端口设置一个参数:
set name qslau
在另一端口能获取到即成功
get name
6.安装ruby
见https://blog.csdn.net/liuqinshouss/article/details/81709982
7.使用gem安装redis-4.0.1.gem
gem install redis-4.0.1.gem
8.重建集群
1)将所有redis节点服务关闭,命令参照如下
./redis-cli –h 10.14.195.185 –p 6998 shutdown
2)在各服务器的{REDIS}/src目录下,删除appendonly.aof node-*.conf文件
rm –rf appendonly.aof
rm –rf node-6998.conf
rm –rf node-6999.conf
3)重新启动各节点服务,重新创建集群即可。参照本文档第五节