redis集群搭建

在这里插入图片描述

1. 工程准备

将安装包、配置文件、启动脚本统一放置到redis工程中。
在这里插入图片描述

2. 基于Dockerfile构建

2.1 拷贝工程到工作目录

# 设置工作目录
WORKDIR ${WORK_DIR}

# 文件拷贝:将所有本地文件拷贝到容器目录
COPY ./redis-m-s ${WORK_DIR}/redis

2.2 安装依赖包

RUN yum -y install make gcc gcc-c++

2.3 解压redis安装包、编译、安装

RUN tar -xzvf ${WORK_DIR}/redis-m-s/app/redis-${REDIS_VERSION}.tar.gz && \
    cd redis-${REDIS_VERSION} && \
    make  && make PREFIX=${SRC_APP_DIR}/redis install && \

2.4 拷贝配置文件到安装目录

拷贝配置文件和启动脚本

	mkdir -p ${SRC_APP_DIR}/redis/etc/ && \
	cp ${WORK_DIR}/redis/conf/* ${SRC_APP_DIR}/redis/etc && \
	cp ${WORK_DIR}/redis/bin/* ${SRC_APP_DIR}/redis/bin && \
	chmod +x ${SRC_APP_DIR}/redis/bin/start_redis.sh && \

清理安装包

	cd ${WORK_DIR} && \
	rm -rf redis-${REDIS_VERSION}

3. 配置文件

3.1 redis1.conf

基于安装目录下redis1.conf进行修改,主要修改项:

bind 0.0.0.0
protected-mode no
port 9001
daemonize yes
pidfile /var/run/redis1.pid
logfile /export/Logs/redis/redis1.log
dbfilename dump1.rdb
dir /export/Data/redis/db1/

masterauth your_pass
requirepass your_pass

appendfilename "appendonly1.aof"

cluster-enabled yes
cluster-config-file nodes1.conf

3.2 redis2.conf

基于安装目录下redis.conf进行修改,主要修改项如下,注意将master_ip替换为实际IP

bind 0.0.0.0
protected-mode no
port 9002
daemonize yes
pidfile /var/run/redis2.pid
logfile /export/Logs/redis/redis2.log
dbfilename dump2.rdb
dir /export/Data/redis/db2/

masterauth your_pass
requirepass your_pass

appendfilename "appendonly2.aof"

cluster-enabled yes
cluster-config-file nodes2.conf

4. 启动redis

在每个容器上执行启动命令

redis-server $REDIS_HOME/etc/redis1.conf &
redis-server $REDIS_HOME/etc/redis2.conf &

5. 创建redis集群

假设三台容器的IP分别为,ip-1,ip-2,ip-3

在ip-1上执行命令

./redis-cli -a your_pass --cluster create ip-1:9001 ip-2:9001 ip-3:9001 ip-1:9002 ip-2:9002 ip-3:9002 --cluster-replicas 1

>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica ip-2:9002 to ip-1:9001
Adding replica ip-3:9002 to ip-2:9001
Adding replica ip-1:9002 to ip-3:9001
M: 1bc419f2130c40b9288eeceb49ff396550a46a1b ip-1:9001
slots:[0-5460] (5461 slots) master
M: d268cd0574e6eb9cbbcb09365a6d997eb62d8058 ip-2:9001
slots:[5461-10922] (5462 slots) master
M: 83b271eacb86f35508394c22f4c0fb22b5ec16f6 ip-3:9001
slots:[10923-16383] (5461 slots) master
S: 25cf245803b0d54ed0d7e81e4ce49930f8ba2fc7 ip-1:9002
replicates 83b271eacb86f35508394c22f4c0fb22b5ec16f6
S: 16c59437f4d77444da2162f2619dfc70d6134efc ip-2:9002
replicates 1bc419f2130c40b9288eeceb49ff396550a46a1b
S: 961020bdfaef4c8e391cb713d0de782af5028e10 ip-3:9002
replicates d268cd0574e6eb9cbbcb09365a6d997eb62d8058
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
....
>>> Performing Cluster Check (using node ip-1:9001)
M: 1bc419f2130c40b9288eeceb49ff396550a46a1b ip-1:9001
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: 961020bdfaef4c8e391cb713d0de782af5028e10 ip-3:9002
slots: (0 slots) slave
replicates d268cd0574e6eb9cbbcb09365a6d997eb62d8058
S: 25cf245803b0d54ed0d7e81e4ce49930f8ba2fc7 ip-1:9002
slots: (0 slots) slave
replicates 83b271eacb86f35508394c22f4c0fb22b5ec16f6
S: 16c59437f4d77444da2162f2619dfc70d6134efc ip-2:9002
slots: (0 slots) slave
replicates 1bc419f2130c40b9288eeceb49ff396550a46a1b
M: d268cd0574e6eb9cbbcb09365a6d997eb62d8058 ip-2:9001
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
M: 83b271eacb86f35508394c22f4c0fb22b5ec16f6 ip-3:9001
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

6. 验证redis

./redis-cli -a your_pass -c -h ip-1 -p 9001 cluster nodes

961020bdfaef4c8e391cb713d0de782af5028e10 ip-3:9002@17002 slave d268cd0574e6eb9cbbcb09365a6d997eb62d8058 0 1706794235284 2 connected
1bc419f2130c40b9288eeceb49ff396550a46a1b ip-1:9001@17001 myself,master - 0 1706794234000 1 connected 0-5460
25cf245803b0d54ed0d7e81e4ce49930f8ba2fc7 ip-1:9002@17002 slave 83b271eacb86f35508394c22f4c0fb22b5ec16f6 0 1706794234000 3 connected
16c59437f4d77444da2162f2619dfc70d6134efc ip-2:9002@17002 slave 1bc419f2130c40b9288eeceb49ff396550a46a1b 0 1706794236287 1 connected
d268cd0574e6eb9cbbcb09365a6d997eb62d8058 ip-2:9001@17001 master - 0 1706794234000 2 connected 5461-10922
83b271eacb86f35508394c22f4c0fb22b5ec16f6 ip-3:9001@17001 master - 0 1706794235000 3 connected 10923-16383

7. springboot应用集成redis

7.1 配置文件

spring:
  redis:
    cluster:
      nodes: redis://ip-1:9001,redis://ip-2:9001,redis://ip-3:9001
    password: your_pass

7.2 启动应用

启动应用时日志打印日志

:   Redis cluster nodes configuration got from ip-1/ip-1:9001:
372e31462aa50a10ce7b823e9f06f0f68414a3de ip-1:9002@17002 slave 82e862a2646a5d962145885750fedda081f6cd8a 0 1714467301494 3 connected
d2c778a9baba58aed1f87d4a5fa57058823900c9 ip-1:9001@17001 myself,master - 0 1714467301000 1 connected 0-5460
cf4817e2530063521e27a40532982316a97e2534 ip-3:9002@17002 slave 7a74601c3d8bb9595e631cd73050c3ceffecc1bb 0 1714467303000 2 connected
7a74601c3d8bb9595e631cd73050c3ceffecc1bb ip-2:9001@17001 master - 0 1714467300000 2 connected 5461-10922
7a094ff44d93cb11b1f4f5a21db43b7898f1c593 ip-2:9002@17002 slave d2c778a9baba58aed1f87d4a5fa57058823900c9 0 1714467303502 1 connected
82e862a2646a5d962145885750fedda081f6cd8a ip-3:9001@17001 master - 0 1714467304506 3 connected 10923-16383

:   1 connections initialized for ip-3/ip-3:9001
:   1 connections initialized for ip-2/ip-2:9001
:   1 connections initialized for ip-1/ip-1:9001
:   24 connections initialized for ip-1/ip-1:9001
:   24 connections initialized for ip-3/ip-3:9001
:   24 connections initialized for ip-2/ip-2:9001
:   1 connections initialized for ip-3/ip-3:9002
:   1 connections initialized for ip-1/ip-1:9002
:   1 connections initialized for ip-2/ip-2:9002
:   slaves: [redis://ip-1:9002] added for slot ranges: [[10923-16383]]
:   slaves: [redis://ip-2:9002] added for slot ranges: [[0-5460]]
:   master: redis://ip-1:9001 added for slot ranges: [[0-5460]]
:   master: redis://ip-3:9001 added for slot ranges: [[10923-16383]]
:   24 connections initialized for ip-2/ip-2:9002
:   24 connections initialized for ip-1/ip-1:9002
:   slaves: [redis://ip-3:9002] added for slot ranges: [[5461-10922]]
:   master: redis://ip-2:9001 added for slot ranges: [[5461-10922]]
:   24 connections initialized for ip-3/ip-3:9002
:   RedissonConfiguration -> createRedisCache start...

参考

Linux系统安装配置Redis集群

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值