redis分布式集群数据库搭建
官方文档中写的是在本地环境下搭建数据库集群,而在我的开发环境中需要多网络节点的集群。下面是分布式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
以上环境搭建完成!
官方文档中写的是在本地环境下搭建数据库集群,而在我的开发环境中需要多网络节点的集群。下面是分布式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
以上环境搭建完成!