redis是c写的,需要进行编译。redis集群一般至少要6个节点(三主三从)配置启动好各节点后,使用redis-trib.rb工具构建集群即可(先不要设置密码,等集群构建完成后再分别通过客户端设置密码后写入config配置文件)。
安装依赖
sudo yum -y install gcc gcc-c++ tcl zlib zlib-devel ruby ruby-devel rubygems rpm-build
下载 redis-*.gem然后本地安装
#下载地址 https://rubygems.org/gems/redis
wget https://rubygems.org/downloads/redis-4.6.0.gem
sudo gem install -l ./redis-4.6.0.gem
sudo chown -R tydic:tydic /usr/local/redis-cluster
sudo chmod -R 751 /usr/local/redis-cluster
netstat -anp |grep redis
cd /home/tydic/redis-5.0.14
# 本次是在三台集群上每台两个节点一共三主三从6个节点
vi /usr/local/redis-cluster/7000/redis.conf
vi /usr/local/redis-cluster/7001/redis.conf
vi /usr/local/redis-cluster/7002/redis.conf
vi /usr/local/redis-cluster/7003/redis.conf
vi /usr/local/redis-cluster/7004/redis.conf
vi /usr/local/redis-cluster/7005/redis.conf
修改配置文件redis.conf
使用redis-trib.rb安装集群
#1代表每个master有1个slave从机, 第一个是主机后面一个是从机依次如此,如果不对就结束重新修改配置
sudo /home/tydic/redis-5.0.14/src/redis-trib.rb create --replicas 1 10.37.62.98:7000 10.37.62.99:7003 10.37.62.99:7002 10.37.62.126:7005 10.37.62.126:7004 10.37.62.98:7001
# 1代表每个master有1个slave从机, 第一个是主机后面一个是从机依次如此,如果不对就结束重新修改配置
sudo /home/tydic/redis-5.0.14/src/redis-trib.rb create --replicas 1 10.37.62.98:7000 10.37.62.99:7003 10.37.62.99:7002 10.37.62.126:7005 10.37.62.126:7004 10.37.62.98:7001
分别连上各个节点设置密码
redis-5.0.14/src/redis-cli -h 10.37.62.99 -p 7002
config set masterauth "123456"
config set requirepass "123456"
auth "123456"
config rewrite
exit
可能的问题
-
Waiting for the cluster to join一直等待解决办法:
要将所有集群中的redis.conf中的bind由 bind 127.0.0.1 修改为 bind 192.168.8.16 或者bind 192.168.8.16 127.0.0.1h
各节点连上去flushall然后删除各个节点的redis的rdb文件和nodes.conf文件,重启redis节点重新用redis-trib.rb创建集群
-
[ERR] Sorry, can’t connect to node 192.168.1.13:7000
修改bind 127.0.0.1为bind 本机ip
注释掉配置文件中的配置密码等集群配置完成之后再重新设置后使用config rewirte写入redis.config文件
#requirepass 123456
#masterauth 123456