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
如果不能yum安装rubygems的需要下载 redis-*.gem然后本地安装
wget https://rubygems.org/downloads/redis-4.6.0.gem
sudo gem install -l ./redis-4.6.0.gem
修改配置文件redis.conf并启动redis单节点
sudo chown -R tydic:tydic /usr/local/redis-cluster
sudo chmod -R 751 /usr/local/redis-cluster
cd /home/tydic/redis-5.0.14
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-trib.rb工具构建集群,集群构建完成前不要配置密码, #集群构建完毕再通过config set + config rewrite命令逐个机器设置密码 port 6379 daemonize yes bind 10.37.62.98 127.0.0.1 #密码暂时不要设置,因为构建集群时暂不支持密码,要在构建完成后再设置密码 #requirepass 123456 #masterauth 123456 #注释关闭保护模式 protected-mode no #启用集群 cluster-enabled yes #7000 7001 …7005 集群自动创建的文件文件名不要相同防止覆盖 cluster-config-file nodes-7000.conf 启动各redis单节点
/home/xx/redis-5.0.14/src/redis-server /usr/local/redis-cluster/7000/redis.conf
/home/xx/redis-5.0.14/src/redis-server /usr/local/redis-cluster/7001/redis.conf
/home/xx/redis-5.0.14/src/redis-server /usr/local/redis-cluster/7002/redis.conf
/home/xx/redis-5.0.14/src/redis-server /usr/local/redis-cluster/7003/redis.conf
/home/xx/redis-5.0.14/src/redis-server /usr/local/redis-cluster/7004/redis.conf
/home/xx/redis-5.0.14/src/redis-server /usr/local/redis-cluster/7005/redis.conf
使用redis-cli安装集群
redis5.0使用redis-cli --cluster create 创建集群,redis3.0使用redis-trib.rb
redis-5.0.14/src/redis-cli --cluster create 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 --cluster-replicas 1
分别连上各个节点设置密码
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
|