Sentinel(哨兵)是Redis 的高可用性解决方案
1、Sentinel 哨兵Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例组成的Sentinel 系统可以监视任意多个主服务器 , 以及这些主服务器属下的所有从服务器 , 并在被监视的主服务器进入下线状态时 , 自动将下线主服务器属下的某个从服务器升级为新的主服务器 。
例如:
文章插图
在Server1 掉线后:
文章插图
升级Server2 为新的主服务器:
文章插图
2、Redis 主从分离 在讲解Sentinel 哨兵集群之前 , 我们先来搭建一个简单的主从分离(读写分离) 。
首先 , 我们默认大家都已经安装了redis , 然后我们将 redis.conf 拷贝多份 , 并且创建多个目录 , 用于区分多个redis 服务:
文章插图
这里面 , 每个目录中都有自己的redis.conf 配置文件 , 接下来 , 我们先设置主服务器的配置文件 。
一、配置Master1、修改端口
# Accept connections on the specified port, default is 6379 (IANA #815344).# If port 0 is specified Redis will not listen on a TCP socket.port 6380
redis 的默认端口是6379 , 这里我们把主服务器的端口设置为6380
2、修改pidfile
# If a pid file is specified, Redis writes it where specified at startup# and removes it at exit.## When the server runs non daemonized, no pid file is created if none is# specified in the configuration. When the server is daemonized, the pid file# is used even if not specified, defaulting to "/var/run/redis.pid".## Creating a pid file is best effort: if Redis is not able to create it# nothing bad happens, the server will start and run normally.pidfile /var/run/redis_6380.pid
pidfile 是我们启动redis 的时候 , linux 为我们分配的一个pid 进程号 , 如果这里不作修改 , 会影响后面redis服务的启动
3、启动 redis
文章插图
启动redis , 我们可以看到 , redis已经占领了6380 端口
进入客户端
redis-cli -p 6380127.0.0.1:6380> info...# Replicationrole:masterconnected_slaves:0master_repl_offset:0repl_backlog_active:0repl_backlog_size:1048576repl_backlog_first_byte_offset:0repl_backlog_histlen:0...
我们可以看到 , redis 现在的角色是一个master 启动的服务 。
二、配置Slave和上面配置 master一样 , 我们需要修改端口号和pid 文件 , 在修改完之后 , 我们有两种方法配置从服务
1、在配置文件中配置从服务
################################# REPLICATION ################################## Master-Slave replication. Use slaveof to make a Redis instance a copy of# another Redis server. A few things to understand ASAP about Redis replication.## 1) Redis replication is asynchronous, but you can configure a master to#stop accepting writes if it appears to be not connected with at least#a given number of slaves.# 2) Redis slaves are able to perform a partial resynchronization with the#master if the replication link is lost for a relatively small amount of#time. You may want to configure the replication backlog size (see the next#sections of this file) with a sensible value depending on your needs.# 3) Replication is automatic and does not need user intervention. After a#network partition slaves automatically try to reconnect to masters#and resynchronize with them.## slaveof
【Sentinel(哨兵)是Redis 的高可用性解决方案】slaveof 127.0.0.1 6380
我们可以在配置文件中直接修改 slaveof 属性 , 我们直接配置主服务器的ip 地址 , 和端口号 , 如果这里主服务器有配置密码
可以通过配置masterauth 来设置链接密码
# If the master is password protected (using the "requirepass" configuration# directive below) it is possible to tell the slave to authenticate before# starting the replication synchronization process, otherwise the master will# refuse the slave request.## masterauth
启动redis 服务:
文章插图
我们可以看到 , 现在有两个现在在运行 , 我们进入6381的客户端 , 看一下他的状态 ,
# Replicationrole:slavemaster_host:127.0.0.1master_port:6380master_link_status:upmaster_last_io_seconds_ago:1master_sync_in_progress:0slave_repl_offset:71slave_priority:100slave_read_only:1connected_slaves:0master_repl_offset:0repl_backlog_active:0repl_backlog_size:1048576repl_backlog_first_byte_offset:0repl_backlog_histlen:0
- 对手|一加9Pro全面曝光,或是小米11最大对手
- 行业|现在行业内客服托管费用是怎么算的
- 王兴称美团优选目前重点是建设核心能力;苏宁旗下云网万店融资60亿元;阿里小米拟增资居然之家|8点1氪 | 美团
- 手机基带|为了5G降低4G网速?中国移动回应来了:罪魁祸首不是运营商
- 技术|做“视频”绿厂是专业的,这项技术获人民日报评论点赞
- 互联网|苏宁跳出“零售商”重组互联网平台业务 融资60亿只是第一步
- 体验|闭上眼睛点外卖是什么感觉?时隔一年再次体验,进步令人欣慰
- 再次|华为Mate40Pro干瞪眼?P50再次曝光,这次是真香!
- 当初|这是我的第一部华为手机,当初花6799元买的,现在“一文不值”?
- 无国界|嘴上说着支持华为,却为苹果贡献了2000亿!还真是科技无国界啊?