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服务
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现