Linux如何部署Redis集群_Linux多节点分片存储与高可用配置【步骤】

夏瑶酱_6440

夏瑶酱_6440

2026-01-12

1048人浏览

原创

需手动部署6个Redis实例(3主3从),配置集群模式、用redis-cli创建集群、验证状态、开放端口并配置systemd服务,最后测试分片与故障转移。

linux如何部署redis集群_linux多节点分片存储与高可用配置【步骤】

如果您计划在Linux环境中构建Redis集群,实现多节点分片存储与高可用性,则需手动配置多个Redis实例并启用集群模式。以下是完成该部署的具体步骤:

一、准备六个独立的Redis实例

Redis集群要求至少三个主节点和三个从节点以满足故障转移与数据分片的基本条件。每个实例需运行在不同端口,并拥有独立的数据目录与配置文件。

1、创建六个工作目录,例如:/opt/redis-cluster/7000 至 /opt/redis-cluster/7005。

2、在每个目录中复制一份 redis.conf 配置文件,并按需修改以下关键项:将 port 改为对应端口号(如7000),设置 bind 0.0.0.0,启用 cluster-enabled yes,指定 cluster-config-file nodes-7000.conf,设置 cluster-node-timeout 5000,并关闭 protected-mode no 和 daemonize yes。

3、依次启动全部六个实例,使用命令:/usr/local/bin/redis-server /opt/redis-cluster/7000/redis.conf,依此类推至7005。

二、使用redis-cli创建集群拓扑

通过 redis-cli 的 --cluster 子命令将六个运行中的节点组织成一个具有三主三从结构的集群。该操作会自动分配槽位(16384个)并建立主从关系。

1、确保系统已安装 Redis 5.0 或更高版本客户端,且 redis-cli 可执行。

2、执行集群初始化命令:redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1。

3、当提示 Can I set the above configuration? (type 'yes' to accept) 时,输入 yes 确认。

三、验证集群状态与节点信息

集群创建完成后,需确认各节点是否成功握手、槽位是否均匀分配、主从关系是否建立,以及集群整体是否处于“ok”状态。

1、连接任意一个节点,例如:redis-cli -c -p 7000。

2、执行命令:cluster info,检查 cluster_state:ok 和 cluster_known_nodes:6 是否出现。

用于自动切换项目中适合的node 版本
用于自动切换项目中适合的node 版本

根据 package.json 中的 engines 字段自动检测 Node.js 版本需求,未安装 nvm 时自动安装并切换至对应版本。支持 Windows、macOS、Linux。适用于 Node.js 项目开发、版本切换和环境配置。

下载

3、执行命令:cluster nodes,确认输出中包含三行标记为 master 且有对应 slave 行的记录,且每行均显示 connected 状态。

四、配置防火墙与系统服务管理

为保障集群节点间通信稳定,需开放所有Redis实例端口及集群总线端口(即实例端口+10000),同时将实例纳入systemd服务以便统一启停与日志管理。

1、开放端口范围:7000-7005 与 17000-17005,使用命令:firewall-cmd --permanent --add-port=7000-7005/tcp 和 firewall-cmd --permanent --add-port=17000-17005/tcp,随后重载防火墙规则。

2、为每个实例编写 systemd service 文件,例如 /etc/systemd/system/redis_7000.service,内容中指定 ExecStart=/usr/local/bin/redis-server /opt/redis-cluster/7000/redis.conf,并设置 Restart=always。

3、执行 systemctl daemon-reload,然后启用并启动服务:systemctl enable redis_7000 && systemctl start redis_7000,依此类推完成全部六个服务。

五、测试数据分片与故障转移能力

通过写入带哈希标签的键值对,验证槽位分配是否生效;通过主动终止主节点进程,观察从节点是否自动升级为主节点并维持集群可用性。

1、使用集群模式客户端连接:redis-cli -c -p 7000。

2、写入多个键,例如:set {user1000}.name "Alice"、set {user2000}.name "Bob",确认返回 OK 且无MOVED重定向错误。

3、在另一终端中执行:kill -9 $(ps aux | grep 'redis.conf' | grep 7000 | awk '{print $2}'),强制停止7000节点。

4、等待约10秒后,再次执行 cluster nodes,确认原7000节点状态变为 fail,而其从节点(如7003)状态已更新为 master,且槽位已接管。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end='\n', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.27

3120

5

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

2026.02.03

269

24

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.02

4709

19

内存数据库有哪些
内存数据库有哪些

内存数据库有Redis、Memcached、Apache Ignite、VoltDB、TimesTen、H2 Database、Aerospike、Oracle TimesTen In-Memory Database、SAP HANA和ache Cassandra。更多关于内存数据库相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.14

4275

11

mongodb和redis哪个读取速度快
mongodb和redis哪个读取速度快

redis 的读取速度比 mongodb 更快。原因包括:1. redis 使用简单的键值存储,而 mongodb 存储 json 格式的数据,需要解析和反序列化。2. redis 使用哈希表快速查找数据,而 mongodb 使用 b-tree 索引。因此,redis 在需要高性能读取操作的应用程序中是一个更好的选择。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.02

8072

6

redis怎么做缓存服务器
redis怎么做缓存服务器

redis 作为缓存服务器的答案:redis 是一款开源、高性能、分布式的键值存储,可作为缓存服务器使用。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.07

663

6

redis怎么解决数据一致性
redis怎么解决数据一致性

redis 提供了两种一致性模型,以维护副本数据一致性:强一致性 (sync) 确保写操作仅在复制到所有从节点后才完成;最终一致性 (async) 则在主节点上写操作后认为已完成,牺牲一致性换取性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.07

776

6

mysql和redis怎么保证双写一致性
mysql和redis怎么保证双写一致性

确保 mysql 和 redis 双写一致性的技术包括:1、事务性更新:同时更新 mysql 和 redis,保证一致性;2、主从复制:mysql 主服务器更改同步到 redis 从服务器;3、基于事件的更新:mysql 记录更改并发送到 redis等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.07

8182

6

redis缓存一般存些什么数据
redis缓存一般存些什么数据

redis缓存中存储的数据类型包括:字符串、哈希、列表、集合、有序集合、位图、地理空间数据和hyperloglog。这些数据类型适用于存储各种数据,从简单信息到复杂对象和地理位置。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.07

1180

6

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习