云服务器之使用docker部署redis分片式集群

2023-12-28 12:50

本文主要是介绍云服务器之使用docker部署redis分片式集群,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

防火墙安全组开启

服务器创建文件夹以便挂载

每个文件内部

conf配置文件  cluster-announce-ip 17.17.17.17  #这里填写你服务器的ip地址 不是容器的ip地址

依次根据对应容器配置即可

这里有个重要点 第一次配置分片集群的时候不要设置密码 

requirepass password   
masterauth  password

这两个不要设置 第一次部署不要设置密码 记住重点!!!

把6个容器启动后配置完集群再去配置文件配置密码 然后重启所有集群容器

# redis端口,不同节点端口不同分别是8001-8006
port 8001
#redis 访问密码
#requirepass password
#redis 访问Master节点密码
#masterauth password
# 关闭保护模式
protected-mode no
# 开启集群
cluster-enabled yes
# 集群节点配置
cluster-config-file nodes.conf
# 超时
cluster-node-timeout 5000
# 集群节点IP host模式为宿主机IP
cluster-announce-ip 49.234.17.247
# 集群节点端口 8001 - 8006
cluster-announce-port 8001
cluster-announce-bus-port 18001
# 开启 appendonly 备份模式
appendonly yes
# 每秒钟备份
appendfsync everysec
# 对aof文件进行压缩时,是否执行同步操作
no-appendfsync-on-rewrite no
# 当目前aof文件大小超过上一次重写时的aof文件大小的100%时会再次进行重写
auto-aof-rewrite-percentage 100
# 重写前AOF文件的大小最小值 默认 64mb
auto-aof-rewrite-min-size 64mb

# 日志配置
# debug:会打印生成大量信息,适用于开发/测试阶段
# verbose:包含很多不太有用的信息,但是不像debug级别那么混乱
# notice:适度冗长,适用于生产环境
# warning:仅记录非常重要、关键的警告消息
loglevel notice
# 日志文件路径
logfile "/data/redis.log"

部署三个主机 依次从8001到8003即可

docker run -d --name redis-master8001 -p 8001:8001 -p 18001:18001 -v /usr/local/app/redis/8001/conf/redis.conf:/etc/local/redis/redis.conf -v /usr/local/app/redis/8001/data:/data redis /etc/local/redis/redis.conf

 部署三个从机 依次从8004到8006即可

docker run -d --name redis-slave8006 -p 8006:8006 -p 18006:18006 -v /usr/local/app/redis/8006/conf/redis.conf:/etc/local/redis/redis.conf -v /usr/local/app/redis/8006/data:/data redis /etc/local/redis/redis.conf

随便找一个redis容器执行如下命令  17.17.17.17是你的云服务器地址 不是容器地址

redis-cli -h 172.17.0.7 -p 8001 -a password --cluster create --cluster-replicas 1 17.17.17.17:8001 17.17.17.17:8002 17.17.17.17:800317.17.17.17:8004 17.17.17.17:8005 17.17.17.17:8006

随便进入几个容器看看

 如果主机掉线 ,等它再次上线就会变成一个从机 这样我们的分片式redis集群就搭建完毕了

redis-cli -h你的ip地址 -p 7001 cluster nodes 即可查看集群状态

 

这篇关于云服务器之使用docker部署redis分片式集群的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/545999

相关文章

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

centos7基于keepalived+nginx部署k8s1.26.0高可用集群

《centos7基于keepalived+nginx部署k8s1.26.0高可用集群》Kubernetes是一个开源的容器编排平台,用于自动化地部署、扩展和管理容器化应用程序,在生产环境中,为了确保集... 目录一、初始化(所有节点都执行)二、安装containerd(所有节点都执行)三、安装docker-

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

使用Python绘制蛇年春节祝福艺术图

《使用Python绘制蛇年春节祝福艺术图》:本文主要介绍如何使用Python的Matplotlib库绘制一幅富有创意的“蛇年有福”艺术图,这幅图结合了数字,蛇形,花朵等装饰,需要的可以参考下... 目录1. 绘图的基本概念2. 准备工作3. 实现代码解析3.1 设置绘图画布3.2 绘制数字“2025”3.3

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

详谈redis跟数据库的数据同步问题

《详谈redis跟数据库的数据同步问题》文章讨论了在Redis和数据库数据一致性问题上的解决方案,主要比较了先更新Redis缓存再更新数据库和先更新数据库再更新Redis缓存两种方案,文章指出,删除R... 目录一、Redis 数据库数据一致性的解决方案1.1、更新Redis缓存、删除Redis缓存的区别二

Redis与缓存解读

《Redis与缓存解读》文章介绍了Redis作为缓存层的优势和缺点,并分析了六种缓存更新策略,包括超时剔除、先删缓存再更新数据库、旁路缓存、先更新数据库再删缓存、先更新数据库再更新缓存、读写穿透和异步... 目录缓存缓存优缺点缓存更新策略超时剔除先删缓存再更新数据库旁路缓存(先更新数据库,再删缓存)先更新数

Jsoncpp的安装与使用方式

《Jsoncpp的安装与使用方式》JsonCpp是一个用于解析和生成JSON数据的C++库,它支持解析JSON文件或字符串到C++对象,以及将C++对象序列化回JSON格式,安装JsonCpp可以通过... 目录安装jsoncppJsoncpp的使用Value类构造函数检测保存的数据类型提取数据对json数

Redis事务与数据持久化方式

《Redis事务与数据持久化方式》该文档主要介绍了Redis事务和持久化机制,事务通过将多个命令打包执行,而持久化则通过快照(RDB)和追加式文件(AOF)两种方式将内存数据保存到磁盘,以防止数据丢失... 目录一、Redis 事务1.1 事务本质1.2 数据库事务与redis事务1.2.1 数据库事务1.