Redis-哨兵模式

  1. Redis软件安装
    Redis服务器:IP:10.2.111.183,IP:10.2.111.184。
    以下安装步骤基于服务器及IP规划妥当,本安装指南以上文中规划的IP进行安装,操作系统为Linux
    Redis高可用-> Redis-Sentinel(v2.8)支持高可用
    分布式-> Redis-Cluster(v3.0)支持分布式
    什么是主从复制
    单机的问题:机器故障,容量瓶颈,QPS瓶颈
    作用:为数据提过多个副本,扩展读性能
    一个master可以有多个slave,一个slave只能有一个master,数据流向是单向的,master到slave

2.1 安装Redis
按步骤在规划的服务器(CentOS7.2以上)上执行下述命令。
#切换至/usr/local目录
cd /usr/local
#下载redis-3.2.0或以上版本包并上传到服务器
#解压
tar xzf redis-3.2.0.tar.gz
#切换至redis-3.2.0目录
cd redis-3.2.0
cd src
#编译
make
#安装
make install

注:若服务器是ARM服务器 则执行如下:

  1. 执行如下命令,获取Redis源码。
    

wget http://download.redis.io/releases/redis-5.0.5.tar.gz
2) 执行如下命令,解压包。
tar -zxvf redis-5.0.5.tar.gz
3) 执行如下命令,进入deps目录。
cd redis-5.0.5/deps
4) 执行如下命令,编译Redis依赖库。
make -j4 hiredis lua jemalloc linenoise
5) 依次执行如下命令,编译Redis。
cd …
make -j4
make install

2.2安装ruby环境
如果没有gem命令,请先安装gem命令
yum install -y ruby
yum install -y rubygems
#安装命令
gem install -l ./redis-4.0.0.rc1.gem

2.3 Redis-Sentinel哨兵集群
Redis主从配置:配置master 只能为写,slave只能为读,在客户端对poolconnect请求时候,,会将读请求转到slave上面,写请求转到master上面,同时,master和slave有同步功能,这就实现了(数据层)读写分离对上层(逻辑层)透明的正常逻辑。无需再通过中间件或者代码进行读写分析实现
Redis-哨兵模式_第1张图片

2.4搭建主从配置
#以一台服务器,配置两个端口号为例子做介绍

redis实现主从配置最关键的两个配置文件是redis.conf和sentinel.conf,分别配合redis-server和redis-sentinel使用:
#master
重命名redis.conf为master-63791.conf

#开启后台运行模式
daemonize yes 是否是以守护进程(no|yes) 默认启动方式no,建议使用yes

#指定进程id存放位置,也可以用默认的
pidfile /usr/local/webserver/redis/run/redis.pid
#指定端口号
port 63791(根据实际端口自行调整)
protected-mode no
tcp-keepalive 0

#指定数据存放位置,也可以用默认的
dir /usr/local/webserver/redis/db 工作目录
slave-serve-stale-data yes
#本redis密码
Require pass 123456
#主redis密码
Master auth “123456”
appendonly yes
注释掉bind

重命名sentinel.conf为 sentinel-16379.conf
port 16379 (根据实际端口自行调整)
dir /usr/local/webserver/redis/db

守护进程模式

daemonize yes
protected-mode no

指明日志文件名,表示当前路径下生成日志文件信息,不用修改路径,配置文件放到哪就生在哪里

logfile “./sentinel.log”
#设置监控的主redis的ip以及端口号,以及投票最低数
sentinel monitor mymaster 10.2.111.183 63791 1
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 18000
sentinel auth-pass mymaster 123456

#slave
重命名redis.conf为slave-63792.conf
daemonize yes
pidfile /usr/local/webserver/redis-slave1/run/redis.pid

port 63792(根据实际端口自行调整)
protected-mode no
dir /usr/local/webserver/redis-slave1/db

#指定主redis以及相应的端口号
Slave of 10.2.111.183 63791 (这里写实际服务器地址和端口) 这里是重点
注释掉bind

重命名sentinel.conf为sentinel-26379.conf

#sentinel端口
port 26379(根据实际端口自行调整)
#工作路径,注意路径不要和主重复/
dir /usr/local/webserver/redis-slave1/db

守护进程模式

daemonize yes
protected-mode no

指明日志文件名

logfile “./sentinel.log”

#哨兵监控的master,主从配置一样,
sentinel monitor mymaster 10.2.111.183 63791 1

master或slave多长时间(默认30秒)不能使用后标记为s_down状态。

sentinel down-after-milliseconds mymaster 5000
#若sentinel在该配置值内未能完成failover操作(即故障时master/slave自动切换),则认为本次failover失败。
sentinel failover-timeout mymaster 18000
#设置master和slaves验证密码
sentinel auth-pass mymaster 123456

如果要实现多个从配置,可以按照以上从配置方式多定义几个端口,并先在防火墙那里开启对应的端口)
常用配置
daemonize 是否是以守护进程(no|yes) 默认启动方式no,建议使用yes
port Redis对外端口号 默认6379
logfile 系统日志
dir 工作目录
RDB config
AOF config
slow Log config max Memory

2.5启动Sentinel集群
进入到redis 安装目录下找到对应src找到下面对应的配置文件并执行:
–>./src/redis-server master-63791.conf
–>./src/redis-sentinel sentinel-16379.conf
–>./src/redis-server slave-63792.conf
–>./src/redis-sentinel sentinel-26379.conf

3.2.6检查各节点是否启动
ps -ef | grep redis
启动成功如下图
在这里插入图片描述

你可能感兴趣的:(缓存,redis)