搭建redis-sentinel哨兵集群

目录

前言

用到的环境 

步骤 

具体实现过程

踩坑重点

 结束

前言

 网上查了一堆教程,感觉都挺乱的,只说了个大概,就那几个简单命令,重点的命令一个没说,想照着来都不行,甚至有些用了哪个系统都没说明白,感觉就是在东拼西凑。(甚至很多都是直接把别人的搬过来)还有一个很重要 的,那些教程老是把篇幅放在了介绍了这是个什么东西,人家肯定是知道 是什么东西才来找教程的。很多时候都是这样的感觉,就想学搭建一个东西,搜出来一堆乱七八糟的,信息太多有时候也不太好。刚毕业菜鸟一枚,希望搭建过程踩到的坑能帮到你。

用到的环境 

用的是虚拟机(去下vmstation,然后下centos9的镜像),centos9,配置是三台虚拟机(虚拟机的网络连接模式是net,桥接模式按着晚上的教程配了一天都失败了),一台主,两台从,主机IP地址是:192.168.140.130,两个从机的地址分别是:192.168.140.131,192.168.140.132(用vmstation创建三台虚拟机后,网络选择net模式,会自动分配三个不同的ip,因为想每个服务器地址放一个redis服务)

步骤 

大体是在三台centos9 上都装上redis这个服务,然后就是配置文件(用两个配置文件,一个是redis.conf(主要的配置文件),一个是sentinel.conf(哨兵的配置文件)),然后放行虚拟机的防火墙端口(作为新手老是容易忘记放行防火墙的端口,在那找了很久问题),感觉其他集群,什么kafka集群那些也都是换汤不换药,先装服务,再配置那些参数(什么连接等待超时,主节点,从节点)不懂的参数配置直接复制给gpt,一直觉得技术每天都是在变化,学习能力很重要,而且现在AI那些很发达,能用到那些先进工具再结合自己的学习能力才能不会被淘汰。

 具体实现过程

 装服务,然后改好配置文件,启动服务(三台都要装,区别就是主机和从机的配置文件不同,启动一个要启动redis服务,一个启动哨兵服务),先来配置主机的。

yum install redis

centos9好像装的是6.x的

 

装好了直接去改配置文件(可能配置文件路径不一定是在这里,这里是centos9的)

vim /etc/redis/redis.conf

在配置文件中找到 portdaemonizeappendonlydir 和 bind 等配置项,并进行相应的修改:

port 6379                # 设置 Redis 主节点的端口号
daemonize yes            # 后台运行 Redis 服务,允许以守护进程的方式运行
protected-mode no        #要改为no     
appendonly yes           # 开启 AOF 持久化
dir /var/lib/redis       # 设置 Redis 数据库文件存放路径
bind 192.168.140.130     # 写自己这台机器的ip
replicaof no one         #表示这是主节点,2.8后好像摒弃了slaveof的写法(没找到自己加上去,查找这些配置文件可以在vim模式输入/后面加自己查找的内容,可以快速定位)

 保存并关闭配置文件,然后启动 Redis 服务:

systemctl start redis

 启动后可以用ps -ef | grep redis查看一下,如果启动成功,能看到相应的端口号和redis服务的

 搭建redis-sentinel哨兵集群_第1张图片

或者可以用systtemctl status redis查看

搭建redis-sentinel哨兵集群_第2张图片 

下一步就是配置从节点了

vim /etc/redis/redis.conf

在配置文件中找到 portdaemonizeappendonlydirbind 等配置项,并进行相应的修改(具体想更深入了解这些参数可以直接复制扔给gpt)

port 26379               
# 设置 Redis 从节点的端口号
daemonize yes            
# 后台运行 Redis 服务#这个一定改为yes,不然用redis-sentinel /etc/redis/sentinel.conf启动不了哨兵服务
sentinel monitor mymaster 192.168.140.130 6379 2 
#这个很重要,表示配置它的从节点的ip和端口(我现在是在配置主机的,所以写的写的是自己主机的ip和端口)

 还有配置一些什么等待超时连接时间啥的(每个公司集群需求不一样,参数配置也不一样的),其他先默认,想深入了解问下gpt,先把服务跑起来。刚才已经把redis服务跑起来了,现在把哨兵服务跑起来,用redis-sentinel /etc/redis/sentinel.conf,一定要在哨兵的配置文件中把daemonize 设置为yes  。跑起来后用ps -ef | grep redis就能看到启动起来的哨兵服务。

这就是启动起来的哨兵服务,端口默认是26379。

其他两台从机的配置跟主机差不多,主要注意点在redis.conf配置文件必须绑定的是自己那台机器的ip,比如我第二台从机的ip是 192.168.140.131,那么我就要在bind后面写192.168.140.131,第三台也是一样,然后sentinel monitor mymaster 192.168.140.130 6379 2这里一定写上主机的ip。

踩坑重点

一定要在每台机器防火墙开放6379和26379的端口,命令如下

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

 用sudo firewall-cmd --list-ports | grep 6379查看是否开放成功

可以看到开放成功了,用redis-cli -h 192.168.140.130 -p 6379 ping是否通了,返回pong表示成功 

可以换其他机器的ip看是否都通了 

配置成功后用redis-cli -h 192.168.140.131 -p 26379 sentinel master mymaster(查看该从节点的主节点相关信息)

搭建redis-sentinel哨兵集群_第3张图片

可以看到主节点的相关信息

运行redis-cli -h 192.168.140.131 -p 26379 sentinel slaves mymaster(查看从节点的所有信息)

搭建redis-sentinel哨兵集群_第4张图片 

 在配置完成后,还可以分别在主机和从机运行redis-cli info replication,可以看到相关信息

在主机运行

 搭建redis-sentinel哨兵集群_第5张图片

在从机运行redis-cli info replication

 搭建redis-sentinel哨兵集群_第6张图片

最后

再来验证一下配置后的哨兵机制主从复制

主机连接客户端,redis-cli

搭建redis-sentinel哨兵集群_第7张图片 

从机也连接上客户端,redis-cli,

搭建redis-sentinel哨兵集群_第8张图片 

 

另一台

搭建redis-sentinel哨兵集群_第9张图片

 结束

 

你可能感兴趣的:(redis,sentinel,数据库)