Win10 + Hyper-V虚拟机 + CentOS 搭建Redis 集群,配置哨兵模式

Win10 + Hyper-v + CentOS 玩转Redis 集群

摘要:

Windows环境下 借助 Hyper-V 安装centos虚拟机,然后创建多个虚拟机 充当redis服务器,配置redis集群

Hyper-V 配置;

配置网络期望:
使虚拟机之间可以互相访问网络;物理主机可以访问虚拟机 (ping通ip
(虚拟机可以不需要访问互联网,只需要局域网内联通就行了,访问互联网还要研究…

配置Hyper-V 的 虚拟网络交换机

首先创建内部虚拟交换机:

打开Hyper-V管理器
在右侧操作面板中选择"虚拟交换机管理器"
选择"新建虚拟网络交换机" -> "内部"
给交换机起个名字,比如"InternalSwitch"
点击"确定"创建

为你的物理主机配置虚拟网卡:

打开"网络和共享中心"
找到新创建的虚拟网卡(名称应该和你创建的虚拟交换机一样)
右键属性 -> IPv4 -> 设置IP地址,例如:
IP地址: 192.168.100.1
子网掩码: 255.255.255.0

注意:可能在 控制面板\网络和 Internet\网络连接 中 系统创建的虚拟网卡的 IPv4地址默认不是 192.168.100.1 ,你可以手动在 无线网卡属性\ Internet协议版本(TCP/IPV4) 属性 手动修改ip地址和我的一样;方便看着以下的教程操作;反正都是局域网地址,随你心意修改

配置虚拟机,并设置你配置的虚拟网络交换机

  • 下载CentOS 镜像文件( 我下载的版本 CentOS-7-x86_64-Minimal-2207-02.iso ) 配置虚拟机,我配了两台
  • 在虚拟机设置中,将网络适配器连接到刚才创建的内部交换机
  • 启动虚拟机
  • 编辑网络配置文件(假设使用的是 eth0):

vi /etc/sysconfig/network-scripts/ifcfg-eth0

第一台虚拟机配置:

BOOTPROTO=static
IPADDR=192.168.100.2
NETMASK=255.255.255.0
ONBOOT=yes

第二台虚拟机配置:

BOOTPROTO=static
IPADDR=192.168.100.3
NETMASK=255.255.255.0
ONBOOT=yes

重启虚拟机的网络服务(记得两台虚拟机都执行下哦):
sudo systemctl restart network

这样配置后:
物理主机可以通过 192.168.100.2 访问第一台虚拟机
物理主机可以通过 192.168.100.3 访问第二台虚拟机
两台虚拟机之间可以互相访问

关闭防火墙(我是测试环境学习使用,减少受影响)
systemctl status firewalld查看防火墙状态
systemctl stop firewalld关闭防火墙
systemctl start firewalld开启防火墙

你可以通过ping命令测试连通性:

在物理主机上测试

ping 192.168.100.2
ping 192.168.100.3

在虚拟机上测试互相访问

ping 192.168.100.2 #在第二台虚拟机上执行
ping 192.168.100.3 #在第一台虚拟机上执行

Centos & Redis配置

Linux Centos 系统下安装redis

因为以上网络环境中 虚拟机无法连接互联网;所以需要使用离线的方式安装redis,在物理主机下载所需文件 通过winscp 连接到虚拟机传输文件

安装redis前 需要确保你的虚拟机有 gcc 编译套件 没有这里安装:

可以在镜像网站下载:https://mirrors.tuna.tsinghua.edu.cn/centos-vault/7.8.2003/os/x86_64/Packages/
下载以下的RPM包 全部放在一个文件夹里 (我是另外建立了一个文件夹 gcc )

cpp-4.8.5-39.el7.x86_64.rpm
gcc-4.8.5-39.el7.x86_64.rpm
glibc-2.17-307.el7.1.x86_64.rpm
glibc-common-2.17-307.el7.1.x86_64.rpm
glibc-devel-2.17-307.el7.1.x86_64.rpm
glibc-headers-2.17-307.el7.1.x86_64.rpm
kernel-headers-3.10.0-1127.el7.x86_64.rpm
libgcc-4.8.5-39.el7.x86_64.rpm
libgomp-4.8.5-39.el7.x86_64.rpm
libmpc-1.0.1-3.el7.x86_64.rpm
mpfr-3.1.1-4.el7.x86_64.rpm

总共十一个文件,别下少了

都下载完,使用winscp传输到虚拟机(winscp使用方法见互联网)
将文件拖拽传输到虚拟机的 /root 目录

在虚拟机中安装:

先安装rpm包
cd /root/gcc
rpm -ivh *.rpm --force --nodeps
然后安装Redis

redis安装包同样是 物理主机下载好 redis
scp传输到虚拟机:

我下载的版本:redis-7.2.4.tar.gz

#先解压啊
tar xzf redis-7.2.4.tar.gz
cd redis-7.2.4

make 
make install

安装成功会出现如下画面:

验证安装是否成功:

# 查看 redis-server 版本
redis-server --version

# 查看 redis-cli 版本
redis-cli --version

测试连接:


#启动
redis-server --daemonize yes

redis-cli
> ping
PONG  # 如果看到 PONG 就说明安装成功且服务正常运行

配置redis运行远程访问

redis 默认情况下 为了保证安全性,不允许通过ip或者其他主机的远程访问 修改配置文件:

#bind xxxx #这个要注释掉
protected-mode no
requirepass 你的redis密码

一些注意事项:
减少影响:sudo systemctl disable firewalld # 永久禁用防火墙(开机不启动)
运行redis-server 你的redis配置文件路径 指定配置文件路径: 例如我的
redis-server /root/redis/redis-7.2.4/redis.conf --daemonize yes

Redis集群

配置Redis的主从架构和哨兵模式。将192.168.100.2设置为主节点,192.168.100.3设置为从节点。

1.配置Redis主从架构

首先关闭两台服务器上的Redis:
redis-cli shutdown

在主节点(192.168.100.2) 修改以下配置:

vi /root/redis-7.2.4/redis.conf

bind 0.0.0.0
port 6379
daemonize yes
protected-mode no
# 设置主节点密码(可选但建议设置)
requirepass 4140
# 设置从节点访问主节点的密码
masterauth 4140

在从节点(192.168.100.3)修改以下配置:

vi /root/redis-7.2.4/redis.conf

bind 0.0.0.0
port 6379
daemonize yes
protected-mode no
# 指定主节点信息
replicaof 192.168.100.2 6379
# 设置从节点密码(可选但建议设置)
requirepass 4140
# 设置访问主节点的密码(需要和主节点的requirepass一致)
masterauth 4140

验证主从状态:
1.在主节点上

redis-cli -a 4140

info replication

2.在从节点上

redis-cli -a 4140

info replication


2.配置哨兵模式:

在两台服务器上创建哨兵配置文件:

在两台服务器上执行

vi /root/redis-7.2.4/sentinel.conf

在sentinel.conf中添加以下内容:

port 26379
daemonize yes
sentinel monitor mymaster 192.168.100.2 6379 1
sentinel auth-pass mymaster 4140
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
sentinel parallel-syncs mymaster 1

启动哨兵:

在两台服务器上分别执行

redis-sentinel /root/redis-7.2.4/sentinel.conf

验证哨兵状态:
redis-cli -p 26379

info sentinel

主要配置说明:

sentinel monitor mymaster 192.168.100.2 6379 1:最后的1表示判定主节点故障需要的哨兵数量
sentinel down-after-milliseconds mymaster 5000:5秒无响应判定节点下线
sentinel failover-timeout mymaster 60000:故障转移超时时间
sentinel parallel-syncs mymaster 1:故障转移时可以同时同步的从节点数量

测试主从复制:

在主节点上写入数据

redis-cli -a 4140

set testkey "Hello"

在从节点上读取数据

redis-cli -a 4140

get testkey

测试故障转移:

关闭主节点:

在192.168.100.2上执行

redis-cli -a 4140 shutdown

观察哨兵日志,看是否触发故障转移:
tail -f /var/log/redis-sentinel.log

注意事项:

密码(4140)请根据你的需求修改
确保防火墙允许6379和26379端口
建议保存所有配置文件的备份

一些命令:

redis-cli -h <主机名> -p <端口号> -a <密码>  #命令行连接到 Redis 服务器
 
redis-cli shutdown # 关闭redis服务

redis-server /root/redis/redis-7.2.4/redis.conf --daemonize yes # 指定配置文件 后台运行redis服务


posted @   rhyswang  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示