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.

文章来源:刘俊涛的博客


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

相关推荐
zopple4 小时前
常见的 Spring 项目目录结构
java·后端·spring
cjy0001116 小时前
springboot的 nacos 配置获取不到导致启动失败及日志不输出问题
java·spring boot·后端
小江的记录本7 小时前
【事务】Spring Framework核心——事务管理:ACID特性、隔离级别、传播行为、@Transactional底层原理、失效场景
java·数据库·分布式·后端·sql·spring·面试
sheji34167 小时前
【开题答辩全过程】以 基于springboot的校园失物招领系统为例,包含答辩的问题和答案
java·spring boot·后端
程序员cxuan7 小时前
人麻了,谁把我 ssh 干没了
人工智能·后端·程序员
wuyikeer8 小时前
Spring Framework 中文官方文档
java·后端·spring
Victor3568 小时前
MongoDB(61)如何避免大文档带来的性能问题?
后端
Victor3569 小时前
MongoDB(62)如何避免锁定问题?
后端
wuyikeer9 小时前
Spring BOOT 启动参数
java·spring boot·后端
子木HAPPY阳VIP10 小时前
Ubuntu 22.04 VMware 设置固定IP配置
人工智能·后端·目标检测·机器学习·目标跟踪