当前位置: 首页 > news >正文

Linux系统安装配置Redis集群

1. 概念

1.1 Redis 集群原理

1)Redis 集群结构:N 个平权主节点(master),每个主节点对应 M 个从节点(slave)。

注:因为投票机制,N 须为奇数。必须要 3 个或以上的主节点,否则在创建集群时会失败,并且当存活的节点数小于总节点数的一半时,整个集群就无法提供服务了。

2)Redis 集群投票机制:服务器之间通过互相的 ping-pong 判断是否节点可以连接上。如果有一半以上的节点去 ping 一个节点的时候没有回应,集群就认为这个节点宕机了。此时该主节点对应的从节点上升为主节点。当没有从节点可替补时,集群宕机。

1.2 功能简介

为达到 Web 集群极致高可用的目标,本文将提供 Redis 集群的部署和配置方案。

2. 操作步骤

2.1 前期准备

部署 Redis 集群至少需要 3 台服务器,准备 3 台 Linux 服务器,每台服务器上部署 2 个节点,3 台服务器运行 6 个 Redis 实例,组成一个经典的「三主三从」的 Redis 集群。

注1:用户若需要搭建 Web 集群和 Redis 集群,其中 Web 节点和 Redis 节点可以共存在一台机器上,不需要准备单独的机器安装 Redis 节点。

注2:需要部署更多节点的 Redis 集群可以基于此方案类推。

注3:主节点必须在不同的服务器上。例如本文示例中,7001/7003/7005为主节点,分布在三台服务器上。7002/7004/7006为从节点,分布在三台服务器上。

        同一槽位的主从也要分布在不同节点。例如本文示例中,7004是7001的从节点,7006是7003的从节点,7002是7005的从节点,均不在同一台服务器上。

服务器服务器IP地址(示例)端口
服务器1 192.168.5.248 7001、7002
服务器2 192.168.5.221 7003、7004
服务器3 192.168.5.102

7005、7006


2.2 服务器上创建两个 Redis 节点

2.2.1 编译环境

安装 Redis 时需对源码包编译,此步骤依赖 gcc 编译器,如果没有 gcc 环境,则需要自行安装,联网安装命令 :yum install gcc gcc-c++

gcc -v #检查是否有 gcc 编译器

2.2.2 下载源码包

要求使用 5.0.0 以上版本 Redis,部署和启动 Redis 集群时无须依赖 ruby。

1)下载:redis-5.0.4.tar.gz

  百度网盘分享,链接: https://pan.baidu.com/s/16t19-XAoX2JyXyG_GIYF8w
  提取码: n5w6

2)官网下载:http://download.redis.io/releases/

2.2.3 安装 Redis

mkdir /usr/redis #创建Redis目录
cd /usr/redis #进入目录
#将redis-5.0.4.tar.gz传输到该目录下#
tar zxvf redis-5.0.4.tar.gz #解压安装包
cd /usr/redis/redis-5.0.4 #进入解压目录
make && make install #安装命令

安装成功后可以看到:

1635402302916482.png

2.2.4 创建节点

mkdir /usr/redis/redis-cluster #创建集群目录redis-cluster
cd /usr/redis/redis-cluster #进入redis-cluster目录
mkdir 7001 7002 #创建两个redis节点的目录

2.2.5 修改配置

拷贝配置文件:redis.conf ,手动放入放置到 7001 和 7002 两个文件夹。

7001 配置文件相比默认的 redis.conf 已经修改内容如下:

注:redis 相关密码本文示例设置的较简单,用户实际操作时请修改为更安全的密码。

# 取消仅限本地访问的限制
#bind 127.0.0.1 
# 设置redis默认后台运行
daemonize yes 
# 关闭保护模式
protected-mode no 
# 最大内存2G
maxmemory 2147483648 
# 过期清理策略
maxmemory-policy allkeys-lru 
# pidfile文件对应7001
pidfile /usr/redis/redis-cluster/7001/redis_7001.pid 
# 端口7001
port 7001 
# redis登录密码,默认admin123456
requirepass admin123456 
# redis认证密码,默认admin123456
masterauth admin123456 
# 开启集群 
cluster-enabled yes 
# 集群的配置,配置文件首次启动自动生成7001
cluster-config-file nodes-7001.conf 
#redis dump落盘文件
dbfilename dump.rdb   
#redis日志文件
logfile "7001.log"    
#redis aof落盘文件
appendfilename "appendonly.aof"    
#指定文件生成地址
dir "/usr/redis/redis-cluster/7001"

7002 文件夹的 redis.conf 同理,只需将配置里的 7001 替换为 7002 (端口、路径)。

2.2.6 启动节点

cd /usr/redis/redis-5.0.4/src/ #进入启动目录
./redis-server /usr/redis/redis-cluster/7001/redis.conf  # 指定7001的配置文件,启动该节点
./redis-server /usr/redis/redis-cluster/7002/redis.conf  # 指定7002的配置文件,启动该节点

2.png

在启动7001 和 7002 节点后,redis 节点之间会用到17001 和 17002 端口供集群选举通信使用(CLUSTER MEET),即使用端口的大小加上 10000(端口是XXXX,那么通信端口是1XXXX),若节点间服务器有防火墙,需要对这些端口进行开放。

2.3 创建其他四个节点

创建更多节点,重复操作本文 2.2.1-2.2.6 的步骤。在服务器 2 和服务器 3 上分别创建 7003、7004 和 7005、7006 节点并启动。

2.4 创建Redis集群

节点创建完毕后,各个节点实际上是独立的,并没有组成一个集群,还需要下面的操作。

注:下面第二行代码中,前三个节点是主节点,后三个节点是从节点。

cd /usr/redis/redis-5.0.4/src/ #进入任一节点的启动目录
./redis-cli --cluster create 192.168.5.248:7001 192.168.5.221:7003 192.168.5.102:7005 192.168.5.248:7002 192.168.5.221:7004 192.168.5.102:7006 --cluster-replicas 1 -a admin123456 
#创建集群的命令,命令最后的admin123456是设置的认证密码,-replicas 1的意思是每台redis服务器有一个备份机,执行完此命令后,该脚本会自动为这6个redis实例分配主从和槽

当程序提示: Can I set the above configuration? (type 'yes' to accept) 时,键入 yes 回车:

24.png

至此集群搭建完成!

3. 验证

3.1 cluster info查看集群是否启动

cd /usr/redis/redis-5.0.4/src/ #进入启动目录
./redis-server /usr/redis/redis-cluster/7001/redis.conf #指定7001的配置文件,启动该节点,其他节点启动方式同理
redis-cli -h ip -c -p 端口 -a 密码 #客户端远程连接某个节点,要输入对应的ip、端口、密码
192.168.1.124:7001> cluster info #进入任意一个节点,查询集群状态

cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:79
cluster_stats_messages_pong_sent:81
cluster_stats_messages_sent:160
cluster_stats_messages_ping_received:76
cluster_stats_messages_pong_received:79
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:160

cluster_state:ok 表示启动成功

3.1 cluster nodes 查看

cd /usr/redis/redis-5.0.4/src/ #进入启动目录
./redis-server /usr/redis/redis-cluster/7001/redis.conf #指定7001的配置文件,启动该节点,其他节点启动方式同理
redis-cli -h ip -c -p 端口 -a 密码 #客户端远程连接某个节点,要输入对应的ip、端口、密码
192.168.1.124:7001> cluster nodes #进入任意一个节点,查询集群主从分布及健康状态

c6d805cbd8b46546c4201739f12fe02e9b2c8963 192.168.5.248:7001@17001 myself,master - 0 1753697178000 1 connected 0-5460
107d9bd7568c514901b50a5d8f1ba16b376565db 192.168.5.248:7002@17002 slave 002c5ec1093ae7130eb352b1f71344bf56f22ad2 0 1753697177000 4 connected
002c5ec1093ae7130eb352b1f71344bf56f22ad2 192.168.5.221:7005@17005 master - 0 1753697177000 3 connected 10923-16383
05daa1c4af64f51b67f4c6de8d546caa7bd1fa73 192.168.5.221:7004@17004 slave c6d805cbd8b46546c4201739f12fe02e9b2c8963 0 1753697179757 5 connected
c573359e2e40e2cd54f927f3adc67651f8786ea7 192.168.5.102:7003@17003 master - 0 1753697178000 2 connected 5461-10922

master对应主节点,slave对应从节点。

 

 参看资料:https://help.fanruan.com/finedatalink-tw/doc-view-542.html

 

http://www.sczhlp.com/news/385.html

相关文章:

  • TOP10迪士尼动画电影下载_公主系列迪士尼电影大全列表在线观看
  • python中pandas包的基本用法
  • 如何用两年时间面试一个人(by jobleap.cn)
  • 读后感
  • HCIE学习之路:一个NAT实验
  • HCIE学习之路:配置基于静态路由的GRE隧道
  • 2025年PLM合规性管理,6大策略,确保项目合法合规!
  • 国内最值钱 IT 公司排行
  • Fastmcp 案例二(SSE)
  • 编译安装 pg_stat_statements
  • Anaconda历史版本
  • 输入未知数目的数据
  • 常见的结构光编解码算法
  • 七月
  • 【UNR #3】配对树 题解
  • 基于Java+Springboot+Vue开发的美容院-美甲店预约管理系统源码+运行步骤
  • 基于YOLOv8的狗狗品种(多达60种常见犬类)品种鉴别识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
  • 公钥和私钥的部分作用
  • 从0开始构建技术
  • Solon 集成 LiteFlow:轻量级工作流引擎的极简实践指南
  • 街道【概念】
  • 解决 EXSI 意外断电后虚拟机无法启动,提示对象类型需要托管的 I/O - 清风
  • P3412 仓鼠找sugar II 题解
  • 中国科学院院士夏培肃|学术成长历程的关键事件、重要节点、师承关系
  • 【深度解析】文件安全传输网关解决方案,安全合规哪家强?
  • 非常棒的unity插件——体素世界
  • 开源新旗舰 GLM-4.5:不想刷榜,只想干活儿
  • Nodejs安装笔记
  • 「中望CAD机械版2025最新版下载+浮动许可激活教程」
  • 2025最新文件摆渡系统评测:这5大功能让跨网传输更高效