1.集群介绍
集群:就是有一个主节点,和多个从节点,如果用户量大或者数据大是,单单一个服务器是没有办法直接支撑业务的,最坏的是导致服务器宕机,这时,集群概念出现,主节点(master)有一个负责写入数据,从节点(slave)负责读取数据,这时,可以减少master压力,实现负载均衡,在项目中,master出现宕机的问题也有,这时,会有一个备用的master,这样保障master出现故障,还有一个备用,当请求到来首先由负载均衡服务器处理,把请求转发到另外的一台服务器上。
2.安装redis(master节点、slave节点)
- 下载redis
- 解压redis:tar -xvzf redis-4.0.9.tar.gz
- 进入目录下进行编译: make
- 进入到src目录下:make install PREFIX=/usr/local/redis
- 创建配置文件目录:mkdir /usr/local/redis/etc
- 移动配置文件到安装目录下:mv redis.conf /usr/local/redis/etc
- 配置redis为后台启动:vi /usr/local/redis/etc/redis.conf //将daemonize no 改成daemonize yes
- 设置开机自动启动:在/etc/rc.local文件中添加:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
- 开启redis:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
- 将redis-cli,redis-server拷贝到bin下,让redis-cli指令可以在任意目录下直接使用
- cp /usr/local/redis/bin/redis-server /usr/local/bin/
- cp /usr/local/redis/bin/redis-cli /usr/local/bin/
3.配置redis(master节点)
1.master(redis)
1.在主节点(master)创建一个conf目录,目录下三个文件,分别为:6380.conf、6381.conf、6382.conf。
2.6380.conf文件
port 6380
bind 192.168.80.10
daemonize yes
pidfile 6380.pid
cluster-enabled yes
cluster-config-file 6380_node.conf
cluster-node-timeout 15000
appendonly yes
3.6381.conf文件
port 6381
bind 192.168.80.10
daemonize yes
pidfile 6381.pid
cluster-enabled yes
cluster-config-file 6381_node.conf
cluster-node-timeout 15000
appendonly yes
4.6382.conf文件
port 6382
bind 192.168.80.10
daemonize yes
pidfile 6382.pid
cluster-enabled yes
cluster-config-file 6382_node.conf
cluster-node-timeout 15000
appendonly yes
5.启动
#进入conf目录下
redis-server 6380.conf
redis-server 6381.conf
redis-server 6382.conf
2.安装tuby
redis-trib.rb使用ruby实现的所以在执行集群创建命令之前需要安装ruby
#使用curl安装rvm
#安装curl
apt-get install curl
#安装rvm,
curl -L get.rvm.io | bash -s stable
#使用rvm安装tuby
rvm install 2.6.3
rvm use 2.6.3 #启用新版本
rvm remove 2.3.0 # 移除旧版本
#查看版本:
tuby -v
3.开放端口
主节点:要开发6380、6381、6382端口(客户端节点的端口)
要还开放集群总线的端口:16380、16381、16382
firewall-cmd --zone=public --add-port=6380/tcp --permanent
firewall-cmd --zone=public --add-port=6381/tcp --permanent
firewall-cmd --zone=public --add-port=6382/tcp --permanent
firewall-cmd --zone=public --add-port=16380/tcp --permanent
firewall-cmd --zone=public --add-port=16381/tcp --permanent
firewall-cmd --zone=public --add-port=16382/tcp --permanent
firewall-cmd --reload
4.配置redis(slave)
1.slave(redis)
1.在主节点(master)创建一个conf目录,目录下三个文件,分别为:6383.conf、6384.conf、6385.conf。
2.6383.conf文件
port 6383
bind 192.168.80.11
daemonize yes
pidfile 6383.pid
cluster-enabled yes
cluster-config-file 6383_node.conf
cluster-node-timeout 15000
appendonly yes
3.6384.conf文件
port 6384
bind 192.168.80.11
daemonize yes
pidfile 6384.pid
cluster-enabled yes
cluster-config-file 6384_node.conf
cluster-node-timeout 15000
appendonly yes
4.6385.conf文件
port 6385
bind 192.168.80.11
daemonize yes
pidfile 6385.pid
cluster-enabled yes
cluster-config-file 6385_node.conf
cluster-node-timeout 15000
appendonly yes
4.启动
#进入conf目录下
redis-server 6383.conf
redis-server 6384.conf
redis-server 6385.conf
2.开放端口
主节点:要开发6383、6384、6385端口(客户端节点的端口)
要还开放集群总线的端口:16383、16384、16385
firewall-cmd --zone=public --add-port=6383/tcp --permanent
firewall-cmd --zone=public --add-port=6384/tcp --permanent
firewall-cmd --zone=public --add-port=6385/tcp --permanent
firewall-cmd --zone=public --add-port=16383/tcp --permanent
firewall-cmd --zone=public --add-port=16384/tcp --permanent
firewall-cmd --zone=public --add-port=16385/tcp --permanent
firewall-cmd --reload
5.启动集群
在主节点上启动集群(master)
#进入redis安装目录下的src目录下
cd redis-4.0.9/src
#启动集群
./redis-trib.rb create --replicas 1 192.168.80.10:6380 192.168.80.10:6381 192.168.80.10:6382 192.168.80.11:6383 192.168.80.11:6384 192.168.80.11:6385