分享Mac本地搭建Redis Cluster集群

前言

上篇主要介绍了通过Java代码连接redis客户端集群的几种模式,这篇主要介绍本地去搭建redis的集群环境,并且通过连接客户端实现缓存在集群节点上进行分布缓存;

本地安装redis

复制代码
brew install redis

我本地安装的是redis 5.0.4版本

配置集群conf文件

我在本地(/usr/local/redis/etc)目录下创建了r1-r6目录

bash 复制代码
//创建集群文件目录
mkdir -p /usr/local/redis/etc/r1
mkdir -p /usr/local/redis/etc/r2
mkdir -p /usr/local/redis/etc/r3
mkdir -p /usr/local/redis/etc/r4
mkdir -p /usr/local/redis/etc/r5
mkdir -p /usr/local/redis/etc/r6

并且在6个文件夹创建redis.conf文件,端口为7000-7005

创建conf配置文件

这里最好是copy源代码里面conf文件,要不然可能会出现文件格式不对,启动redis-server的时候,配置文件无法被启动

bash 复制代码
cp redis.conf /app/redis/etc/r1/redis.conf

然后进行修改,拿7000为例,大概就需要配置这几个参数就行;

bash 复制代码
# 绑定ip
bind 127.0.0.1
# 不开启保护模式
protected-mode no
# 不同实例配置不同的监听端口
port 7000
# 开启后台运行模式
daemonize yes
# 不同实例配置不同的rdb静态化文件
dbfilename dump_r1.rdb
# 不同实例配置不同的运行路径
dir /usr/local/redis/etc/r1/
# 设置redis允许使用的最大内存,单位是byte
maxmemory 241172480
# 开启aof静态化模式
appendonly yes
# 设置aof文件名
appendfilename "appendonly.aof"
# 开启cluster集群模式
cluster-enabled yes
# 不同实例设置不同的节点配置文件
cluster-config-file /usr/local/redis/etc/r1/nodes.conf
# 设置节点超时时间
cluster-node-timeout 15000

启动集群配置

然后切换到/usr/local/redis/bin目录下执行

bash 复制代码
redis-server /usr/local/redis/etc/r1/redis.conf
redis-server /usr/local/redis/etc/r2/redis.conf
redis-server /usr/local/redis/etc/r3/redis.conf
redis-server /usr/local/redis/etc/r4/redis.conf
redis-server /usr/local/redis/etc/r5/redis.conf
redis-server /usr/local/redis/etc/r6/redis.conf

启动了6个节点

关联所有节点

分配节点槽位

关于槽位分配我也是进行查资料得知,redis Cluster槽位是由16384个slot组成的,所以分配的时候要在这个区间进行分配;

yaml 复制代码
redis-cli -p 7000 cluster addslots {0..5461}
redis-cli -p 7001 cluster addslots {5462..10922}
redis-cli -p 7002 cluster addslots {10923..16383}

主从节点关联

前面是每个node节点的id,我们需要根据node节点id进行中从节点关联;

关联规则是 7003关联7000、7004关联70001、7005关联7002

css 复制代码
redis-cli -p 7003 cluster replicate 81ab3aacdb8af5a83af4f229a0b2351648edd84b
redis-cli -p 7004 cluster replicate ab11850a62091f8f095c82d886c005609ec8b403
redis-cli -p 7005 cluster replicate e06be4a56cc5836186ba9cb03e0f3a26835ba268

这里看我们已经关联完毕

再次执行redis-cli -p 7000 cluster nodes 已经可以看到3主3从已经创建完毕,3个master节点,3个slave节点;

集群验证

我们在7000端口添加了一个key,value为"Lxlxxx",通过切换redis-cli其余几个节点都进行了同步这个key;

通过Mac 的rdm工具进行连接,可以看到形成集群列表;

总结

至此Mac本地进行redis Cluster配置已经结束,下次可以尝试在docker容器里进行redis Cluster配置,本地所要考虑的因素比较少,所以很多配置没有加,包括reis日志log保存、也没有进行password设置;

相关推荐
苍何3 小时前
开源微信流 Windows,微信聊天记录,可以直接给 Codex 和 Obsidan 了
后端
代码什么用4 小时前
Spring基础使用
java·后端·spring
明月_清风4 小时前
Deno 终局来了:从挑战 Node 到被 Cloudflare 收编
前端·后端·node.js
蜗牛互联网5 小时前
Java 17 HttpClient调用文件转写API的超时与失败回退
java·人工智能·后端
禾小西5 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
用户69371750013847 小时前
2026,程序员的时代拐点到了
android·前端·后端
骉马代驾7 小时前
代驾系统实战(三):抢单池的 Redis 锁 + RabbitMQ 异步消费怎么做
redis
惜鸟7 小时前
从源码看 pi 的上下文管理:原始数据永久保留,模型视角按需裁剪
后端
量化分析码农7 小时前
【Python量化策略评估体系 #05】极端行情扛得住吗?2008/2015/2020 三场景压力测试
后端
十年Java程序媛7 小时前
Java 接口和抽象类对比|Java8 新特性,抛弃老旧八股,正确选型
java·spring boot·后端