使用docker-compose部署Redis集群

一、部署三主三从的Redis集群

分别为6个节点建立挂载目录,每个目录下建立数据、配置、日志文件夹。

docker-compose内容如下:

version: '3'
services:redis1:image: redis:6.2.3restart: alwaysports:- "6379:6379"- "16379:16379"volumes:- "./6379/data:/data/redis"- "./6379/logs:/opt/redis/logs"- "./6379/etc/redis.conf:/etc/redis/redis.conf"command: redis-server /etc/redis/redis.confredis2:image: redis:6.2.3restart: alwaysports:- "6380:6380"- "16380:16380"volumes:- "./6380/data:/data/redis"- "./6380/logs:/opt/redis/logs"- "/opt/redis/cluster/6380/etc/redis.conf:/etc/redis/redis.conf"command: redis-server /etc/redis/redis.confredis3:image: redis:6.2.3restart: alwaysports:- "6381:6381"- "16381:16381"volumes:- "./6381/data:/data/redis"- "./6381/logs:/opt/redis/logs"- "./6381/etc/redis.conf:/etc/redis/redis.conf"command: redis-server /etc/redis/redis.confredis4:image: redis:6.2.3restart: alwaysports:- "7379:7379"- "17379:17379"volumes:- "./7379/data:/data/redis"- "./7379/logs:/opt/redis/logs"- "./7379/etc/redis.conf:/etc/redis/redis.conf"command: redis-server /etc/redis/redis.confredis5:image: redis:6.2.3restart: alwaysports:- "7380:7380"- "17380:17380"volumes:- "./7380/data:/data/redis"- "./7380/logs:/opt/redis/logs"- "./7380/etc/redis.conf:/etc/redis/redis.conf"command: redis-server /etc/redis/redis.confredis6:image: redis:6.2.3restart: alwaysports:- "7381:7381"- "17381:17381"volumes:- "./7381/data:/data/redis"- "./7381/logs:/opt/redis/logs"- "./7381/etc/redis.conf:/etc/redis/redis.conf"command: redis-server /etc/redis/redis.conf

 redis.conf大同小异,以redis1的配置为例,大部分是默认配置值,主要是修改集群配置部分,和端口部分

bind 0.0.0.0
protected-mode no
# 每个实例有各自的端口,6380,6381等等
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize nopidfile /var/run/redis.pid
loglevel verbose
logfile "/opt/redis/logs/redis.log"
always-show-logo noset-proc-title yes
proc-title-template "{title} {listen-addr} {server-mode}"
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yesdbfilename dump.rdb
rdb-del-sync-files no
dir /data/redis/replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
acllog-max-len 128
requirepass 123456
maxmemory 10737418240lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush nolazyfree-lazy-user-del nolazyfree-lazy-user-flush nooom-score-adj no
oom-score-adj-values 0 200 800
disable-thp yesappendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mbaof-load-truncated yes
aof-use-rdb-preamble yeslua-time-limit 5000# 集群关键配置
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000cluster-announce-ip 172.19.23.214
#每个实例改为各自对应的端口
cluster-announce-port 6379
cluster-announce-bus-port 16379slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events Ex
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000stream-node-max-bytes 4096
stream-node-max-entries 100activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
jemalloc-bg-thread yes

使用docker-compose up -d 启动集群,查看状态是否正常,如果启动失败可以查看6379/logs/redis.log查看日志。

进入redis的bin目录下执行,(也可以进入任意一个容器内执行)

./redis-cli --cluster create -a 123456 172.16.19.234:6379 172.16.19.234:7379 172.16.19.234:6380 172.16.19.234:7380 172.16.19.234:6381 172.16.19.234:7381 --cluster-replicas 1

命令会输出一段提示,输入yes同意集群配置,稍等片刻显示成功,这个过程不需要太久(不到一分钟),如果等了很久一直显示......,那就是有问题,但是控制台不会报错,要检查配置、日志看是否有问题。

配置成功后,连接集群

./redis-cli  -c  -h 172.16.19.234 -p 6379 -a 123456

 查看集群信息

查看集群节点

测试命令,根据键值所在槽位,会自动切换到对应节点的连接。

集群模式不支持select 选数据库,只有0号

 二、数据迁移

 安装redis-dump

npm install redis-dump -g

也有的教程是用

apt-get install ruby ruby-dev gcc
sudo gem install redis-dump

 安装的,不知道有什么区别,我两种方式都安装了。

导出:

# -d 表示几号数据库
redis-dump -u 172.16.19.234:6379 -a 123456 -d 0 > data0.json

导入:

cat data0.json | bin/redis-cli -c  -h 172.16.19.234 -p 6379 -a 123456

最后使用dbsize命令检查迁移数据是否完整。集群要把每个节点的总和加起来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/541218.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

短剧APP系统开发:打造全新的掌上剧场体验

随着移动互联网的普及和人们娱乐方式的多样化,短剧已经成为现代人生活中不可或缺的一部分。为了满足用户对高质量、便捷观看短剧的需求,我们致力于开发一款功能全面、操作简便的短剧APP系统,为用户带来前所未有的掌上剧场体验。 一、系统开发…

教你如何用Python生成随机数字和随机字符串

直接看代码 随机整数: >>> import random >>> random.randint(0,99) 21 随机选取0到100间的偶数: >>> import random >>> random.randrange(0, 101, 2) 42 随机浮点数: >>> import random >…

【leetcode】二叉树的前序遍历➕中序遍历➕后序遍历

大家好,我是苏貝,本篇博客带大家刷题,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 1. 二叉树的前序遍历2. 二叉树的中序遍历3. 二叉树的后序遍历 1. 二叉树的前序遍历 点击查看题目 根…

ChatGPT终于有身体了

目录 一、开启 AI 机器人新纪元:Figure 01 的惊艳亮相 二、网友热议与技术探索:Figure 01 的广泛影响 三、未来展望:人形机器人与日常生活的融合 一、开启 AI 机器人新纪元:Figure 01 的惊艳亮相 在人工智…

18 OpenCV霍夫变换检测直线

文章目录 HoughLines 算子HoughLinesP 算子示例 HoughLines 算子 cv::HoughLines( InputArray src, // 输入图像,必须8-bit的灰度图像 OutputArray lines, // 输出的极坐标来表示直线 double rho, // 生成极坐标时候的像素扫描步长 double theta, //生成极坐标时候…

【阿里云系列】-部署ACK集群的POD应用日志如何集成到日志服务(SLS)中

介绍 我们在实际部署应用到阿里云的ACK集群后,由于后期应用服务的持续维护诉求可能需要跟踪排查问题,此时就要具备将应用的历史日志存档便于后期排查问题 处理方式 为了解决以上的普遍需求,需要将ACK中的应用日志采集到SLS的Logstore中,然…

使用CIP采集欧姆龙EtherNet/IP从入门到精通

本文将会从以下几个方面介绍 1.CIP是什么 2.EtherNet/IP通信是什么 3.CIP通信报文解析 4.使用CIP常用的方法和功能介绍(UCMM) 5.自己封装了一个类,只要知道标签名称,和数据类型即可读写数据 6.demo展示 1.CIP是什么 CIP通信…

CSS:过渡动画 (Transition)与关键帧动画(Keyfram)

一、过渡动画 (Transition) 1.简单介绍 Transition能为样式的变化提供过渡效果,例如在下面的代码中: .main {width: 300px;height: 100px;background-color: #d26f6f;}.main:hover {width: 300px;height: 200px;background-color: #5e3e3e;transition:…

关于如何重燃学习的激情

3月1日是我回学校的第一天。经历了长达8个月在家的昏暗时刻,我这10天的感觉和在家的感觉发生了翻天覆地的变化,最明显的莫过于学习状态的改变。 倒不是说在家学的不好,而是说在学校,我对学习的整体感觉,以及专注程度&…

警惕Memcached协议滥用!网络攻击愈演愈烈,如何做好服务器防御?

近期,网络安全领域迎来了一场新的挑战。Memcached协议,这个原本用于提升数据库读取性能的开源内存缓存系统,近期被恶意攻击者所滥用,进行大规模分布式拒绝服务(DDoS)放大攻击。全球多家公司服务器受到波及&…

2024年腾讯云优惠券领取入口整理汇总

腾讯云作为国内领先的云服务提供商,一直以其稳定、高效、安全的服务赢得了广大用户的信赖。为了回馈广大用户,腾讯云经常会推出各种优惠活动,其中优惠券就是最为常见和受欢迎的一种。 一、腾讯云优惠券领取入口 渠道一:腾讯云官网…

【云呐】固定资产管理系统处理哪些业务

固定资产管理是企业经营全过程中非常重要的任务。涉及到公司的核心资产,包括土地、建筑、设备、车辆等。许多企业选择固定资产管理系统,以确保这些资产的高效管理和合理使用。所以,固定资产管理系统解决了哪些业务?步骤是什么&…