前言
上篇主要介绍了通过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设置;