环境

系统 : CentOS 7(以下为虚拟机环境)
节点
192.168.100.181:7001
192.168.100.181:7002
192.168.100.181:7003
192.168.100.181:7004
192.168.100.181:7005
192.168.100.181:7006

版本 : redis-5.0.5.tar.gz

安装:

解压:

tar -zxvf redis-5.0.5.tar.gz

进入解压目录安装:

cd redis-5.0.5
make && make install

如果没有安装 gcc 会报错(需要删掉原来解压的redis文件 安装好gcc后重新执行 make && make install 安装)

使用RESP连接虚拟机上的redis redis虚拟节点_使用RESP连接虚拟机上的redis

yum install -y gcc-c++

创建节点目录:7001 7002 7003 7004 7005 7006

使用RESP连接虚拟机上的redis redis虚拟节点_redis_02

复制相应文件到各节点目录:

配置文件在解压后 redis-5.0.5/redis.conf
redis-cli,redis-server 在解压后的 redis-4.0.11/src 目录下:

使用RESP连接虚拟机上的redis redis虚拟节点_redis_03

主要配置:

修改redis.conf中的以下配置即可

port 7001                         #端口7001,7002,7003,7004,7005,7006
cluster-enabled yes               #开启集群
cluster-config-file nodes.conf    #集群配置信息,开启集群后自动生成
cluster-node-timeout 5000         #请求超时时长
appendonly yes                    #开启aof日志,它会每次写操作都记录一条日志
daemonize yes                     #redis后台运行
bind 0.0.0.0                      #默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 如果需要远程都能访问则注释
pidfile /var/run/redis_7001.pid   #pidfile文件对应7001,7002,7003,7004,7005,7006
dir "/usr/local/redis/7001/data"  #数据文件存放位置对应7001,7002,7003,7004,7005,7006

注意: 暂时不要创建密码(集群创建好后再创建)

各节点配置完毕后启动

./7001/redis-server ./7001/redis7001.conf
./7002/redis-server ./7002/redis7002.conf
./7003/redis-server ./7003/redis7003.conf
./7004/redis-server ./7004/redis7004.conf
./7005/redis-server ./7005/redis7005.conf
./7006/redis-server ./7006/redis7006.conf

创建集群

1.redis 4

利用redis-trib.rb创建集群(4.0.x左右版本)

需要安装ruby

目前 CentOS 使用yum安装版本较低

使用以下方式安装

curl -L get.rvm.io | bash -s stable

如果报错需要获得密钥

使用RESP连接虚拟机上的redis redis虚拟节点_使用RESP连接虚拟机上的redis_04


复制提示命令执行

gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

再执行如下命令:

curl -sSL https://get.rvm.io | bash -s stable

安装ruby

source /usr/local/rvm/scripts/rvm

rvm list known #查看安装版本(找到>=2.3.0版本下载)

rvm install 2.6.3

查看ruby版本

ruby --version

安装gem redis接口

gem install redis

安装rubygems

yum install -y rubygems

创建集群

在解压后 redis src 目录 将 redis-trib.rb 复制到操作目录

./redis-trib.rb create --replicas 1 192.168.100.185:7001 192.168.100.185:7002 192.168.100.185:7003 192.168.100.185:7004 192.168.100.185:7005 192.168.100.185:7006

检查集群状态:

./redis-trib.rb check 127.0.0.1:7001

2. redis 5

redis 5.0.5版本将命令移至redis-cli ,使用 redis-trib.rb 会报错:

使用RESP连接虚拟机上的redis redis虚拟节点_使用RESP连接虚拟机上的redis_05


根据提示使用redis-cli创建

在解压后 redis src 目录 将 redis-cli 复制到操作目录

执行命令

redis-cli --cluster create 192.168.100.185:7001 192.168.100.185:7002 192.168.100.185:7003 192.168.100.185:7004 192.168.100.185:7005 192.168.100.185:7006 --cluster-replicas 1

创建成功:

使用RESP连接虚拟机上的redis redis虚拟节点_ruby_06


检查:

./redis-cli --cluster check 192.168.100.185:7001

可以去之前配置的data目录查看节点配置文件:

使用RESP连接虚拟机上的redis redis虚拟节点_使用RESP连接虚拟机上的redis_07

使用客户端连接

redis-cli -c -p 7001

使用RESP连接虚拟机上的redis redis虚拟节点_rvm_08

设置密码:

连接至个节点执行如下命令(各节点密码必须完全一致):

redis-cli -c -p 7001

config set masterauth 123456
config set requirepass 123456
auth 123456
config rewrite

使用RESP连接虚拟机上的redis redis虚拟节点_使用RESP连接虚拟机上的redis_09

至此安装完毕!

注意:

修改密码后检查节点需要添加验证

redis-cli方式

./redis-cli --cluster check 192.168.100.185:7001 -a 123456

redis-trib.rb方式
查找 client.rb

find / -name 'client.rb'

使用RESP连接虚拟机上的redis redis虚拟节点_redis_10


使用RESP连接虚拟机上的redis redis虚拟节点_ruby_11

vi  /usr/local/rvm/gems/ruby-2.6.3/gems/redis-4.1.2/lib/redis/client.rb

将nil 改为密码即可

启动和关闭

多节点启动关闭较为麻烦 可配置启动 和关闭脚本

启动:

vi start.sh

内容如下:

cd /usr/local/redis/7001/
redis-server redis7001.conf
cd /usr/local/redis/7002/
redis-server redis7002.conf
cd /usr/local/redis/7003/
redis-server redis7003.conf
cd /usr/local/redis/7004/
redis-server redis7004.conf
cd /usr/local/redis/7005/
redis-server redis7005.conf
cd /usr/local/redis/7006/
redis-server redis7006.conf

权限

chmod 755 start.sh

关闭

vi stop.sh

内容如下:

#!/bin/bash
redis_name='redis-server'
pidlist=`ps -ef|grep $redis_name |grep -v "grep"|awk '{print $2}'`
if [ "$pidlist" = "" ]
  then
      echo "no redis pid alive!"
else
   echo redis id list :$pidlist
   kill $pidlist
   echo "KILL $pidlist"
   echo "redis stop success"
fi

权限

chmod 755 stop.sh

关于阿里云ECS安装Redis集群注意事项

1.安全组策略配置 开放7001-7006端口 以及 17001-17006端口
2.使用公网创建集群
3.创建完后可以去data目录查看节点配置文件地址是否正确(之前遇到个坑 不知什么原因将各节点myself地址变成内网地址)