Linux版本:6.9
三台机器:10.211.55.7(主)、10.211.55.8、10.211.55.9
Resis版本:5.0.9 版本 (下载地址 wget http://download.redis.io/releases/redis-5.0.5.tar.gz)
普通用户:admin
超级管理员用户:root
一、安装Redis
-
进入到用户目录下: cd /home/admin
-
并将redis-5.0.5.tar.gz上传至文件目录下
-
解压缩redis:tar -zxvf redis-5.0.5.tar.gz
-
进入到Redis编译并安装:
-
cd redis-5.0.5
-
查看是否有 :gcc -v
-
没有gcc:yum install gcc
-
有输出:不处理
-
-
编译:make
-
安装:make install
-
到此无报错即Redis安装成功
二、配置哨兵(配置主从)
1、配置文件redis.conf,修改一下内容:
10.211.55.7:
bind 10.211.55.7 #不建议使用127.0.0.1、
protected-mode no #命令禁用保护模式。关闭保护模式,可以外部访问。
daemonize yes #后台运行
dir /data/redis/db #系统盘不够大的建议修改到大磁盘中,也可以不修改
requirepass admin123456 主节点密码
10.211.55.8:配置文件redis.conf,修改一下内容:
bind 10.211.55.8 #不建议使用127.0.0.1、
protected-mode no #命令禁用保护模式。关闭保护模式,可以外部访问。
daemonize yes #后台运行
dir /data/redis/db #系统盘不够大的建议修改到大磁盘中,也可以不修改
replicaof 10.211.55.7 6379
masterauth admin123456 #master密码
10.211.55.9:配置文件redis.conf,修改一下内容:
bind 10.211.55.9 #不建议使用127.0.0.1、
protected-mode no #命令禁用保护模式。关闭保护模式,可以外部访问。
daemonize yes #后台运行
dir /data/redis/db #系统盘不够大的建议修改到大磁盘中,也可以不修改
replicaof 10.211.55.7 6379
masterauth admin123456 #master密码
2、启动Redis
在三台机器的Redis安装目录下操作(!!!先启动主节点!!!)
./src/redis-server redis-conf
连接主节点redis
./src/redis-cli -h 10.211.55.7 -p 6379 -a admin123456
连接成功 输入 info Replication 可以看到如下集群相关配置信息
# Replication
role:master
connected_slaves:2
slave0:ip=10.211.55.8,port=6379,state=online,offset=102108006,lag=1
slave1:ip=10.211.55.9,port=6379,state=online,offset=102108143,lag=1
master_replid:808aa250d63d7d65c3aa2c3e8e386a21c19b6d43
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:102108143
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:101059568
repl_backlog_histlen:1048576
如果主节点可以连接上,试一下可不可以在主节点上连接上另外两个,如果有防火墙问题,三台机器均要做以下开通防火墙操作
sudo firewall-cmd --permanent --add-port=6379/tcp
sudo firewall-cmd --reload
3、配置redis哨兵
10.211.55.7:配置文件sentinel.conf,修改一下内容:
protected-mode no #关闭保护模式,可以外部访问。
daemonize yes #设置为后台启动。
logfile /data/redis/log/sentinel.log #日志文件。系统盘不够大的建议修改到大磁盘中,也可以不修改。
sentinel monitor mymaster 10.211.55.7 6379 2 #指定当有2台哨兵认为主机挂了,则对主机进行容灾切换。 注意:三台哨兵这里的ip配置均为主节点ip 和端口。
sentinel auth-pass mymaster admin123456 #当在Redis实例中开启了requirepass,这里就需要提供密码。
sentinel down-after-milliseconds mymaster 3000 #这里设置了主机多少毫秒无响应,则认为挂了。
snetinel parallel-syncs mymaster 1 #主备切换时,最多有多少个slave同时对新的master进行同步,这里设置为默认的。
sentinel failover-timeout mymaster 180000 #故障转移的超时时间,这里设置为三分钟。
10.211.55.8:配置文件sentinel.conf,修改一下内容:
protected-mode no #关闭保护模式,可以外部访问。
daemonize yes #设置为后台启动。
logfile /data/redis/log/sentinel.log #日志文件。系统盘不够大的建议修改到大磁盘中,也可以不修改。
sentinel monitor mymaster 10.211.55.7 6379 2 #指定当有2台哨兵认为主机挂了,则对主机进行容灾切换。 注意:三台哨兵这里的ip配置均为主节点ip 和端口。
sentinel auth-pass mymaster admin123456 #当在Redis实例中开启了requirepass,这里就需要提供密码。
sentinel down-after-milliseconds mymaster 3000 #这里设置了主机多少毫秒无响应,则认为挂了。
sentinel parallel-syncs mymaster 1 #主备切换时,最多有多少个slave同时对新的master进行同步,这里设置为默认的。
sentinel failover-timeout mymaster 180000 #故障转移的超时时间,这里设置为三分钟。
10.211.55.9:配置文件sentinel.conf,修改一下内容:
protected-mode no #关闭保护模式,可以外部访问。
daemonize yes #设置为后台启动。
logfile /data/redis/log/sentinel.log #日志文件。系统盘不够大的建议修改到大磁盘中,也可以不修改。
sentinel monitor mymaster 10.211.55.7 6379 2 #指定当有2台哨兵认为主机挂了,则对主机进行容灾切换。 注意:三台哨兵这里的ip配置均为主节点ip 和端口。
sentinel auth-pass mymaster admin123456 #当在Redis实例中开启了requirepass,这里就需要提供密码。
sentinel down-after-milliseconds mymaster 3000 #这里设置了主机多少毫秒无响应,则认为挂了。
snetinel parallel-syncs mymaster 1 #主备切换时,最多有多少个slave同时对新的master进行同步,这里设置为默认的。
sentinel failover-timeout mymaster 180000 #故障转移的超时时间,这里设置为三分钟。
4、启动Redis哨兵
在三台机器的Redis安装目录下操作(!!!先启动主节点!!!)
./src/redis-sentinel ./sentinel.conf
连接主节点redis
./src/redis-cli -h 10.211.55.7 -p 26379 -a admin123456
连接成功 输入 info Sentinel 可以看到如下信息
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=10.40.108.9:6379,slaves=2,sentinels=3
如果主节点可以连接上,试一下可不可以在主节点上连接上另外两个,如果有防火墙问题,三台机器均要做以下开通防火墙操作
sudo firewall-cmd --permanent --add-port=26379/tcp
sudo firewall-cmd --reload
5、验证是否主从同步
连接主节点
./src/redis-cli -h 10.211.55.7 -p 6379 -a admin123456
set testKey testValue
连接从节点
./src/redis-cli -h 10.211.55.8 -p 6379 -a admin123456
get testKey
输出 testValue
连接从节点
./src/redis-cli -h 10.211.55.9 -p 6379 -a admin123456
get testKey
输出 testValue