环境
系统 : 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 安装)
yum install -y gcc-c++
创建节点目录:7001 7002 7003 7004 7005 7006
复制相应文件到各节点目录:
配置文件在解压后 redis-5.0.5/redis.conf
redis-cli,redis-server 在解压后的 redis-4.0.11/src 目录下:
主要配置:
修改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
如果报错需要获得密钥
复制提示命令执行
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 会报错:
根据提示使用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
创建成功:
检查:
./redis-cli --cluster check 192.168.100.185:7001
可以去之前配置的data目录查看节点配置文件:
使用客户端连接
redis-cli -c -p 7001
设置密码:
连接至个节点执行如下命令(各节点密码必须完全一致):
redis-cli -c -p 7001
config set masterauth 123456
config set requirepass 123456
auth 123456
config rewrite
至此安装完毕!
注意:
修改密码后检查节点需要添加验证
redis-cli方式
./redis-cli --cluster check 192.168.100.185:7001 -a 123456
redis-trib.rb方式
查找 client.rb
find / -name 'client.rb'
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地址变成内网地址)