官方文档中写的是在本地环境下搭建数据库集群,而在我的开发环境中需要多网络节点的集群。下面是分布式Redis数据库搭建过程。环境是Ubuntu16.04LTS。
要让集群正常工作至少需要3个主节点,官网中强烈建议6个节点,在这里我创建7个redis节点,其中三个为主节点,四个为从节点,三个节点在一个网络节点中,四个单独对应一个网络节点。对应的redis节点的ip和端口对应关系如下:
192.168.3.242:7000
192.168.3.242:7001
192.168.3.242:7002
192.168.2.241:6379
192.168.2.240:6379
192.168.2.239:6379
192.168.2.238:6379
网络拓扑图如下:
部署步骤:
1、每一个网络节点都要下载redis。从官网上下载3.2.1版本,只有版本大于3的redis支持集群分布。
2、解压,编译
tar -zxvf redis-3.2.1.tar.gz
mv redis-3.2.1.tar.gz redis3.
cd /home/dragon/redis3
make
make install
3、创建集群需要的目录
192.168.3.242节点:
mkdir -p /home/dragon/redis3/cluster
cd /home/dragon/redis3/cluster
mkdir 7000 7001 7002
其他节点:
mkdir -p /home/dragon/redis3/cluster
cd /home/dragon/redis3/cluster
4、修改配置文件redis.conf
cp /home/dragon/redis3/redis.conf /home/dragon/redis3/cluster
vim redis.conf
修改配置文件中的下面选项(以242节点为例)
bind 192.168.3.242(对应的网络节点)
port 7000(对应端口号)
daemonize yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
##修改完redis.conf配置文件中的这些配置项之后把这个配置文件分别拷贝到7000/7001/7002/目录下面
cp /home/dragon/redis3/redis.conf /home/dragon/redis3/cluster/7000
cp /home/dragon/redis3/redis.conf /home/dragon/redis3/cluster/7001
cp /home/dragon/redis3/redis.conf /home/dragon/redis3/cluster/7002
##注意:拷贝完成之后要修改7001/7002/目录下面redis.conf文件中的port参数,分别改为对应的文件夹的名称
5、分别启动这7个redis实例
cd /home/dragon/redis3/cluster/7000
redis-server redis.conf
cd /home/dragon/redis3/cluster/7001
redis-server redis.conf
cd /home/dragon/redis3/cluster/7002
redis-server redis.conf
cd /home/dragon/redis3/cluster
redis-server redis.conf
cd /home/dragon/redis3/cluster
redis-server redis.conf
cd /home/dragon/redis3/cluster
redis-server redis.conf
启动之后使用命令查看redis的启动情况ps -ef|grep redis
如下图显示则说明启动成功
6、执行redis的创建集群命令创建集群
cd /home/dragon/redis3/src
./redis-trib.rb create --replicas 1 192.168.3.238:6379 192.168.3.239:6379 192.168.3.240:6379 192.168.3.241:6379 192.168.3.242:6379
执行上面的命令的时候会报错,因为是执行的ruby的脚本,需要ruby的环境
错误内容:/usr/bin/env: ruby: No such file or directory
所以需要安装ruby的环境
apt-get install ruby
apt-get install rubygem
gem install redis
有时候会出现以下错误:
这时需要将每一个数据库节点文件夹中的除redis.conf文件的其他文件删除,如appendonly.aof nodes-6379.conf等
再次执行第6步的命令,正常执行
输入yes,然后配置完成。
至此redis集群即搭建成功!
7、使用redis-cli命令进入集群环境
./redis-cli -c -h 192.168.3.242 -p 7000
8、查看集群环境
./redis-trib.rb check 192.168.3.242:7000
如下显示:
以上环境搭建完成!