Linux下Redis集群配置小结

redis cluster管理工具redis-trib.rb详解
本次使用的redis版本是:4.0.9

Redis安装过程这里不再讲解,网上有很多教程.这里主要讲解如何搭建集群.
本次使用一机(Ubantu)搭建6个服务端.一主配一从.

修改配置文件

1.创建6个文件夹:7000-7005
这里写图片描述

2.分别放入以下文件

//客户端运行文件
redis-cli
//配置文件
redis.conf
//服务端运行文件
redis-server

3.修改每个文件夹中的配置文件redis.conf

//端口,相应地修改为7000-7005
port 7000

//使能集群
cluster-enable  yes 
//集群会将当前节点 记录的集群状态持久化到这个文件中
cluster-config-file nodes.conf

配置完成

创建脚本

1.创建启动脚本 start-all.sh

cd 7000
./redis-server redis.conf
cd ..

cd 7001
./redis-server redis.conf
cd ..

cd 7002
./redis-server redis.conf
cd ..

cd 7003
./redis-server redis.conf
cd ..

cd 7004
./redis-server redis.conf
cd ..

cd 7005
./redis-server redis.conf
cd ..

2.创建关闭脚本 stop-all.sh

cd 7000
./redis-cli -p  7000 shutdown
./redis-cli -p  7001 shutdown
./redis-cli -p  7002 shutdown
./redis-cli -p  7003 shutdown
./redis-cli -p  7004 shutdown
./redis-cli -p  7005 shutdown

注意:这两个脚本文件需要放在7000-7005同级的目录里.

3.执行脚本启动和关闭redis

./start-all.sh
./stop-all.sh

这里写图片描述

4.登录客户端查看集群状态

//登录
redis-cli -p 7000 
//查看状态
info cluster

这里写图片描述

组成集群

1.安装ruby工具 

//安装ruby
sudo apt-get install ruby
//安装ruby连接接接口
gem install redis

如果不安装接口,后续操作 会报错

/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError)
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from ./redis-trib.rb:25:in `<main>'

2.初始化集群
cluster_enabled为1表示集群可以正常使用了.现在每个节点都是独立的.需要将他们加入到同一个集群中.

Redis的src文件夹里提供了一个辅助工具redis-trib.rb.使用ruby编写的.
将其复制到7000-7005同级的目录下.并创建初始化脚本init-cluster.sh

init-cluster.sh

./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002    127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

–replicas 1:表示每个数据库都有一个从数据库,因此整个集群一共有三个主数据库和是三个从数据库.

执行脚本

./init-cluster.sh

有可能会报错 Node 127.0.0.1:7001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

解决办法:
1.把目录下的dump.rdb和nodes-700x.conf删除掉.
2. 登录客户端,执行flushdb
这里写图片描述

再次执行脚本,报警告Trying to optimize slaves allocation for anti-affinity [WARNING] Some slaves are in the same host as their master
这个无所谓,只是建议不要主从数据库放在同个机器上,这样子宕机时会不安全.

>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
127.0.0.1:7000
127.0.0.1:7001
127.0.0.1:7002
Adding replica 127.0.0.1:7004 to 127.0.0.1:7000
Adding replica 127.0.0.1:7005 to 127.0.0.1:7001
Adding replica 127.0.0.1:7003 to 127.0.0.1:7002
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: 77bde185502595509d9aa000cb67b0aa55a9439f 127.0.0.1:7000
   slots:0-5460,5474,9494,9499,9842,11037,12291,12933,13310,14635 (5470 slots) master
M: daea47a8df47877859078837ca88d8b39f62c41b 127.0.0.1:7001
   slots:5282,5461-10922,11037,12291,12933,13310,14635 (5468 slots) master
M: a4d6171872e7393180441031bdfd5b5f00809a45 127.0.0.1:7002
   slots:5282,5474,9494,9499,9842,10923-16383 (5466 slots) master
S: 7fbccf4b2c6b614784c2943eb4775834fe9ebcfd 127.0.0.1:7003
   replicates a4d6171872e7393180441031bdfd5b5f00809a45
S: 174f0b1128f479578db4c51c448cb8f6c31d0a84 127.0.0.1:7004
   replicates 77bde185502595509d9aa000cb67b0aa55a9439f
S: b26dd23a6c2f21d3cbc4df1e846e373b4749b9cc 127.0.0.1:7005
   replicates daea47a8df47877859078837ca88d8b39f62c41b
Can I set the above configuration? (type 'yes' to accept):

输入:yes,出现以下内容说明创建成功.

>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值