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.

文章来源:刘俊涛的博客


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

相关推荐
追逐时光者44 分钟前
免费、简单、直观的数据库设计工具和 SQL 生成器
后端·mysql
初晴~1 小时前
【Redis分布式锁】高并发场景下秒杀业务的实现思路(集群模式)
java·数据库·redis·分布式·后端·spring·
盖世英雄酱581361 小时前
InnoDB 的页分裂和页合并
数据库·后端
小_太_阳2 小时前
Scala_【2】变量和数据类型
开发语言·后端·scala·intellij-idea
直裾2 小时前
scala借阅图书保存记录(三)
开发语言·后端·scala
星就前端叭3 小时前
【开源】一款基于Vue3 + WebRTC + Node + SRS + FFmpeg搭建的直播间项目
前端·后端·开源·webrtc
小林coding3 小时前
阿里云 Java 后端一面,什么难度?
java·后端·mysql·spring·阿里云
AI理性派思考者3 小时前
【保姆教程】手把手教你在Linux系统搭建早期alpha项目cysic的验证者&证明者
后端·github·gpu
从善若水4 小时前
【2024】Merry Christmas!一起用Rust绘制一颗圣诞树吧
开发语言·后端·rust