搭建redis哨兵

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 搭建redis哨兵

Redis哨兵

五:总结&升华

一:前言

最近公司里需要进行开发和测试环境的redis的升级,由原来的单机模式,扩展成哨兵模式,用了一天的时间,不断摸索,尝试,成功的完成了这个任务。

下面出一个教程,讲一讲redis的这几个模式以及怎么从单机升级到哨兵模式。


二:redis部署方式分类

redis按照其部署方式从简单到复杂分别是:


2.1 单机模式

最简单的部署方式,Redis运行在单个服务器上,所有的读写请求都在这个服务器上进行处理。说白了就是就一台。读和写都在这一台上面,入过这一台机器挂了,那我们的服务也就挂了。我们现在的开发和测试就处于当前模式。


2.2 主从模式

Redis可以通过主从复制模式实现数据的自动备份和负载均衡。在这种模式下,一个Redis服务器充当主服务器,而另外的服务器充当从服务器,主服务器负责处理所有的写请求,并将数据同步到所有的从服务器上,从服务器只负责处理读请求,这样可以提高系统的可用性和读写性能。

主从模式至少需要两台机器,一台负责读,一台负责写。通过读写分离无疑会提高我们的可用性,但是它与单机模式有相同的缺点,无论是那台机器挂掉都会影响我们的服务,导致服务不可用。


2.3 哨兵模式

在主从复制模式下,如果主服务器出现故障,需要手动将其中一个从服务器升级为主服务器。而在哨兵模式下,Redis自动检测主服务器的状态,并在主服务器出现故障时自动将从服务器升级为主服务器。这种模式提高了系统的可用性。

哨兵模式至少需要3台服务器来保证高可用。一台主,一台从,一台哨兵服务器。


2.4 集群模式

Redis可以通过集群模式实现分布式部署,数据分散存储在多个服务器上,每个服务器存储一部分数据。集群模式可以提高系统的可扩展性和容错性。

Redis 集群模式需要至少六台服务器,其中包括三个 Redis 主服务器和三个 Redis 从服务器,每个主服务器和从服务器均需运行在不同的物理节点上,以保证数据的高可用性和容错性。


每个模式都是在之前的基础上演变而来的,今天我们的目标是搭建Redis哨兵模式。


三:搭建流程

上文已经说到,每个模式都是在之前的基础上演变而来的,那么我们就需要从单机开始,进行搭建。经过主从模式,最后升级到我们的目标哨兵模式。


3.1 单机搭建流程

1.将下载好的redis安装包放到安装目录下。

2.解压安装包 tar -zxvf redis-5.0.7.tar.gz

3.安装gcc编译环境 yum install gcc-c++

4.打开解压的redis文件

5.输入命令进行安装 make make install

6.修改配置文件 redis.conf

## 修改1:注释如下行,注释以后redis可以接收任意ip的连接
# bind 127.0.0.1
## 修改2:关闭保护模式(如果设置为yes,那么只允许我们在本机的回环连接,其他机器无法连接。)
protected-mode no
## 修改3:开启redis服务后台运行
daemonize yes
## 修改4:添加日志路径,便于排查问题
logfile “/home/admin/redis/redis-5.0.7/redis.log”

7.开启防火墙

systemctl start firewalld.service

8.开放指定端口号

查看已开放端口号:

firewall-cmd --list-ports

开放指定端口号,下方示例端口号为6379

firewall-cmd --zone=public --add-port=6379/tcp --permanent

9.重启防火墙

端口号才算开放成功

firewall-cmd --reload

10.启动服务

./redis-server /home/admin/redis/redis-5.0.7/theRedisConf/redis.conf

** 上述10步就可以搭建出一台可以正常使用的redis单机了,重复以上操作,准备3台机器。大家如果在本地操作的话,可以搭建到同一台机器上,通过端口号区分,搞一个伪集群**

3.2 搭建主从模式

1.编辑从机配置文件

vi /home/admin/redis/redis-5.0.7/theRedisConf/redis.conf

2.添加上master的IP或主机及端口号

replicaof 192.168.xxx.xxx 6379

只需要告诉从机,主机是那台机器即可,主机不需要进行任何操作。

当执行 replicaof 192.168.xxx.xxx 6379 命令时,当前 Redis 服务器就会将自己设置为指定地址为 192.168.xxx.xxx,端口为 6379 的 Redis 服务器的从服务器。也就是说,

当前 Redis 服务器会开始复制指定 Redis 服务器的数据,并在复制过程中不断地与主服务器进行同步,以保证数据的一致性。


3.3 搭建哨兵模式

1.0修改配置文件

注意修改为你自己的安装位置

vi /home/admin/redis/redis-5.0.7/redisSentinel/sentinel.conf

2.具体修改内容

## 修改1:让sentinel服务后台运行
daemonize yes
## 修改2:增加日志文件路径
logfile “/home/admin/redis/redis-5.0.7/sentinel.log”
## 修改3:增加redis主节点信息和需要进行选举的法定个数(2代表只有2个哨兵节点同时认为master节点时效时,才算真正的失效)
把sentinel monitor mymaster 127.0.0.1 6379 2改成
sentinel monitor mymaster 192.168.xxx.xxx 2

搭建完成之后我们可以尝试将主节点进程强制杀死,查看是否会更换主节点。


四:哨兵模式优点

哨兵模式可以很好的实现高可用,它的主要优点包括以下几项:


4.1 自动故障转移

哨兵可以监控 Redis 主节点的状态,并在主节点发生故障时自动进行故障转移。这样可以避免单点故障导致整个 Redis 集群不可用的问题。


4.2 实现高可用性

哨兵模式可以确保 Redis 集群在主节点故障时快速切换到备用节点上,从而保证 Redis 集群的高可用性。这可以大大提高 Redis 集群的可靠性,降低系统故障对业务造成的影响。


4.3 管理集群状态

哨兵可以定期检查 Redis 集群的状态,并记录相关信息。这些信息可以帮助管理员了解 Redis 集群的健康状态,以及进行性能分析和故障诊断等工作。


4.4 支持扩展性

哨兵模式可以支持 Redis 集群的扩展,只需要在新节点上部署哨兵即可。这可以使 Redis 集群更加灵活,可以根据业务需求进行扩展。


4.5 概括

总之,Redis 哨兵模式可以提供高可用性和可靠性,同时可以帮助管理员更好地管理 Redis 集群的状态和性能,从而使 Redis 集群更加稳定和可靠。


五:总结&升华

我们在本文章介绍了Redis的四种模式。重点讲解了如何从单机模式升级到哨兵模式,并且给出了详细的搭建流程。希望大家读完之后可以了解到redis的不同部署方式,以及如果实操搭建redis的哨兵模式,提高系统的可用性与容错性。

实践出真知,快点搞一台服务器练起来吧!


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
4月前
|
NoSQL Redis Sentinel
【怒怼大厂面试官】听说你精通Redis?说说Redis哨兵
面试官:Redis哨兵知道吧?知道的,Sentinel哨兵本质是一个运行在特殊模式下的Redis服务器。面试官:嗯然后呢?它的主要作用是通过检测Redis主从服务器的下线状态,选举出新Redis主服务器,也就是故障转移,来保证Redis的高可用性。
102 4
【怒怼大厂面试官】听说你精通Redis?说说Redis哨兵
|
3月前
|
运维 监控 NoSQL
Redis Sentinel哨兵模式部署
Redis Sentinel哨兵模式部署
87 2
|
15天前
|
存储 NoSQL Redis
SpringCloud基础7——Redis分布式缓存,RDB,AOF持久化+主从+哨兵+分片集群
Redis持久化、RDB和AOF方案、Redis主从集群、哨兵、分片集群、散列插槽、自动手动故障转移
SpringCloud基础7——Redis分布式缓存,RDB,AOF持久化+主从+哨兵+分片集群
|
29天前
|
运维 监控 NoSQL
【Redis】哨兵(Sentinel)原理与实战全解~炒鸡简单啊
Redis 的哨兵模式(Sentinel)是一种用于实现高可用性的机制。它通过监控主节点和从节点,并在主节点故障时自动进行切换,确保集群持续提供服务。哨兵模式包括主节点、从节点和哨兵实例,具备监控、通知、自动故障转移等功能,能显著提高系统的稳定性和可靠性。本文详细介绍了哨兵模式的组成、功能、工作机制以及其优势和局限性,并提供了单实例的安装和配置步骤,包括系统优化、安装、配置、启停管理和性能监控等。此外,还介绍了如何配置主从复制和哨兵,确保在故障时能够自动切换并恢复服务。
|
3月前
|
监控 NoSQL Java
redis哨兵架构
不过为了高可用一般都推荐至少三个哨兵节点。为什么推荐奇数个哨兵节点跟集群奇数个master节点类似。
37 0
redis哨兵架构
|
2月前
|
消息中间件 监控 NoSQL
Redis哨兵改集群
【7月更文挑战第7天】
|
2月前
|
缓存 NoSQL Redis
Redis复制、哨兵
Redis复制、哨兵
35 0
|
3月前
|
存储 监控 NoSQL
Redis系列学习文章分享---第十二篇(搭建哨兵集群+RedisTemplate连接哨兵+搭建分片集群+-散列插槽+集群伸缩 +故障转移+RedisTemplate访问分片集群)
Redis系列学习文章分享---第十二篇(搭建哨兵集群+RedisTemplate连接哨兵+搭建分片集群+-散列插槽+集群伸缩 +故障转移+RedisTemplate访问分片集群)
156 0
|
4月前
|
存储 NoSQL Redis
Redis源码、面试指南(5)多机数据库、复制、哨兵、集群(下)
Redis源码、面试指南(5)多机数据库、复制、哨兵、集群
256 1