Redis Cluster 部署详细教程

Redis Cluster 部署详细教程

新服务器上设置 Redis Cluster 的操作文档:

前提条件

  • 已购买并初始化三台服务器,假设其 IP 地址分别为:server1-ip, server2-ip, server3-ip
  • 确保服务器之间网络互通,可通过 ping 命令验证

步骤 1:安装 Redis

在每台服务器上执行:

bash 复制代码
# 更新系统包列表
sudo apt-get update

# 安装 Redis(这里以 Ubuntu/Debian 为例,其他系统请参考对应官方文档)
sudo apt-get install redis-server -y

# 检查 Redis 是否已成功安装和运行
systemctl status redis-server

步骤 2:配置 Redis 节点

在每台服务器上分别创建三个不同的配置文件,例如:

bash 复制代码
# server1 上的配置文件
nano /etc/redis/redis-7000.conf
nano /etc/redis/redis-7001.conf

# server2 和 server3 上同样创建两个不同端口的配置文件
# ...

# 对每个配置文件进行如下修改:
# 示例:对于 redis-7000.conf
port 7000
cluster-enabled yes
cluster-config-file nodes-7000.conf
appendonly yes # 如果需要持久化数据

# 同理对 redis-7001.conf 进行类似修改,将端口号改为 7001

在 Redis Cluster 集群中,每个节点都需要监听不同的端口。创建两个不同端口的配置文件是为了在同一台服务器上运行两个独立的 Redis 实例,这两个实例将分别作为集群中的不同节点。

Redis Cluster 的设计要求至少有三个主节点(以确保数据分布和容错能力),并且推荐为主节点配置从节点以实现高可用性。因此,在每台服务器上通常会部署一个主节点和至少一个从节点,这就需要为每个实例使用不同的端口来避免冲突。

例如,在 server2server3 上,可能的端口分配如下:

  • server2 上:

    • Redis 实例 1 监听端口 7000,作为集群的一个主节点
    • Redis 实例 2 监听端口 7001,作为第一个主节点的从节点或者另一个主节点
  • server3 上:

    • Redis 实例 3 监听端口 7002,作为另一个主节点

    • Redis 实例 4 监听端口 7003,作为第三个主节点的从节点或前一个未配对的主节点的从节点

这样配置可以满足集群的基本要求,并提供一定程度的数据冗余和故障恢复能力。

步骤 3:启动 Redis 节点

在每台服务器上根据配置文件启动 Redis 实例

bash 复制代码
# 对于 server1
sudo systemctl start redis@7000
sudo systemctl start redis@7001

# 对于 server2 和 server3 同样启动相应的 Redis 实例
# ...

步骤 4:创建 Redis Cluster

登录到任意一台服务器,并使用 redis-cli 创建集群

bash 复制代码
# 先确保已经安装了 redis-cli,若没有则需先安装
sudo apt-get install redis-tools -y

# 使用以下命令创建集群,替换实际的 IP 地址
redis-cli --cluster create server1-ip:7000 server1-ip:7001 server2-ip:7000 server2-ip:7001 server3-ip:7000 server3-ip:7001 --cluster-replicas 1

# 若 Redis 设置了密码,则加上 `-a <password>` 参数

步骤 5:验证集群状态

在任意节点上通过 redis-cli 检查集群状态

bash 复制代码
redis-cli -c -h serverX-ip -p 7000
CLUSTER INFO
CLUSTER NODES

以上是基于 Linux 系统的基本操作步骤,实际部署时请根据实际情况调整。确保每个步骤前都进行了充分的测试与检查。

注意:在生产环境中,请根据业务需求和安全性要求进一步优化配置,包括但不限于防火墙规则、安全组设置等。

欢迎关注公-众-号【TaonyDaily】、留言、评论,一起学习。

Don't reinvent the wheel, library code is there to help.

文章来源:刘俊涛的博客


若有帮助到您,欢迎点赞、转发、支持,您的支持是对我坚持最好的肯定(^_^)

相关推荐
S***26754 小时前
基于SpringBoot和Leaflet的行政区划地图掩膜效果实战
java·spring boot·后端
@大迁世界6 小时前
相信我兄弟:Cloudflare Rust 的 .unwrap() 方法在 330 多个数据中心引发了恐慌
开发语言·后端·rust
5***g2986 小时前
新手如何快速搭建一个Springboot项目
java·spring boot·后端
2***B4498 小时前
Rust在系统编程中的内存安全
开发语言·后端·rust
U***e638 小时前
Rust错误处理最佳实践
开发语言·后端·rust
q***47188 小时前
Spring中的IOC详解
java·后端·spring
码事漫谈9 小时前
C++小白最容易踩的10个坑(附避坑指南)
后端
码事漫谈9 小时前
性能提升11.4%!C++ Vector的reserve()方法让我大吃一惊
后端
稚辉君.MCA_P8_Java10 小时前
Gemini永久会员 Java中的四边形不等式优化
java·后端·算法
稚辉君.MCA_P8_Java10 小时前
通义 插入排序(Insertion Sort)
数据结构·后端·算法·架构·排序算法