docker搭建redis集群三主三从

为什么需要做分布式redis

  1. 水平扩展:
    随着业务的发展,单机Redis可能无法满足日益增长的数据存储和访问需求。分布式Redis可以通过将数据分散到多个节点上来实现水平扩展,提高存储容量和处理能力。
  2. 高可用性:
    单点故障是任何系统的一大风险。分布式Redis通过复制和故障转移机制,确保即使某个节点失效,服务仍能继续运行,从而提高了系统的可用性。
  3. 负载均衡:
    分布式Redis可以将读写请求分散到多个节点,减少单个节点的压力,实现负载均衡,提高系统整体性能。
  4. 数据冗余与安全性:
    主从复制机制确保数据有多份副本,即使某个节点出现问题,也可以从其他节点恢复数据,增强了数据的安全性。
  5. 故障恢复:
    当节点出现故障时,分布式Redis可以通过自动或手动的故障转移机制,快速恢复服务,降低业务中断的影响。
    更好的地理分布:

就是适应当下的分布式环境来做的分布式redis。

批量启动脚本

# 端口号从7001到7006开始循环
for port in $(seq 7001 7006);  \
do \
# 创建node-port的文件夹
mkdir -p /mydata/redis/node-${port}/conf
# 给文件夹创建redis的配置类
touch /mydata/redis/node-${port}/conf/redis.conf
# 给redis.conf文件中写入内容,从EOF开始,到EOF结束。
cat << EOF > /mydata/redis/node-${port}/conf/redis.conf
# 定义端口号
port ${port}
# 开启集群模式
cluster-enabled yes
# 节点信息在nodes.conf保存着
cluster-config-file nodes.conf
# 每个节点的超时时间,超过多长时间连接不上就认为是断线了。超过该时间(毫秒),集群自动进行主从切换
cluster-node-timeout 5000
# 每个节点在集群中的ip
cluster-announce-ip 192.168.1.119
# 在集群的端口号
cluster-announce-port ${port}
# 跟其他redis进行总线交互用的端口
cluster-announce-bus-port 1${port}
appendonly yes
EOF
#  暴露端口号 端口号 集群交互暴露端口号  集群交互端口号      容器名字
docker run -p ${port}:${port} -p 1${port}:1${port} --name redis-${port}  \
# 挂载data目录 redis.conf 目录
-v /mydata/redis/node-${port}/data:/data \
-v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
# -d以后台方式 镜像版本 redis-server启动redis 加载自定义的配置文件
-d redis:5.0.7 redis-server /etc/redis/redis.conf; \
done

windows命令换行符问题

vim进去后
:set ff=unix
:wq
这样子可以改变换行符

注意

需要更换里面的地址ip
三主三从是一个最低配置,以实际情况为准

启动集群命令

# 进入redis-7001内部
docker exec -it redis-7001 bash
# 用redis-cli命令行执行 创建集群 一个副本
redis-cli  --cluster create 192.168.1.119:7001 192.168.1.119:7002 192.168.1.119:7003 192.168.1.119:7004 192.168.1.119:7005 192.168.1.119:7006
--cluster-replicas 1

springboot项目连接redis 集群

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

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

相关文章

C++关联容器2——关联容器特有操作

关联容器操作 除了http://t.csdnimg.cn/osoJZ 中列出的类型&#xff0c;关联容器还定义了下表中列出的类型。这些类型表示容器关键字和值的类型。 关联容器额外的类型别名 key_type此容器类型的关键字类型mapped_type每个关键字关联的类型&#xff1b;只适用于mapvalue_type对…

macOS asdf 工具版本管理器

一、区别于Homebrew "asdf"和"Homebrew"都是用于管理软件包的工具&#xff0c;但它们的主要区别在于适用范围和管理的内容&#xff1a; 1.适用范围&#xff1a; asdf&#xff1a;是一个通用的版本管理工具&#xff0c;可以用来管理多种不同的软件工具和…

结构体介绍(1)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 结构体&#xff08;1&#xff09; 前言一、struct介绍结构体声明结构体创建和初始化struct 的特殊声明结构体自引用 二、结构体内存对齐2.1.对齐规则 总结 前言 结构体 属于…

复习结构体

1.怎样使用结构体变量2.关于 . 和-> 的用法 pst -> age 会被计算机内部转化为&#xff08;*pst).age&#xff0c;这就是 ->的含义&#xff0c;是一种硬性规定 像 float 类型和 double 类型 &#xff0c;由于编码原因&#xff0c;一般都不能被精确存储 像 数字66.6在C…

【快速入门Linux】10_Linux命令—Vi编辑器

文章目录 一、vi 简介1.1 vi1.2 vim1.3查询软连接命令&#xff08;知道&#xff09; 二、打开和新建文件&#xff08;重点&#xff09;2.1 打开文件并且定位行2.2 异常处理 三、vi三种工作模式&#xff08;重点&#xff09;3.1 末行模式-命令 四、常用命令4.0 命令线路图4.1 移…

cache数据库基础操作

Cache数据库(也称为Cach或InterSystems Cach)是一种后关系型数据库,由美国Intersystems公司开发。它提供了高性能、可扩展性和灵活性,特别适合需要处理大量数据和高并发访问的应用场景。以下是一些Cache数据库的基础操作: 安装与设置: 访问Intersystems官方网站或相关资…

WordPress自建站如何备份和恢复数据

WordPress自建站备份和恢复数据的方法如下&#xff1a; 1. 备份数据&#xff1a; – 登录cPanel面板。 – 在域功能区&#xff0c;点击打开WordPress Toolkit。 – 找到需要备份的网站&#xff0c;点击备份/恢复选项。 – 在备份与恢复页面中&#xff0c;点击备份。 – 备…

HTML_CSS学习:CSSLearning

一、优先级 相关代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>优先级</title> <!-- <style>--> <!-- h1{--> <!-- color: #1f33…

cartographer问题处理

问题1 : CMake Error: The following variables are used in this project, but they are set to NOTFOUND. Please set them or make sure they are set and tested correctly in the CMake files: GMOCK_LIBRARY (ADVANCED)linked by target "time_conversion_test&quo…

自动装箱VS自定拆箱

引言&#xff1a; 在Java中&#xff0c;自动装箱&#xff08;Autoboxing&#xff09;和自动拆箱&#xff08;Autounboxing&#xff09;是Java 5引入的一项特性&#xff0c;用于在基本数据类型和它们的包装类&#xff08;wrapper classes&#xff09;之间进行自动转换。这允许程…

vue中$nextTick用法

$nextTick 是 Vue.js 提供的一个方法&#xff0c;它用于延迟执行一段代码&#xff0c;直到 Vue 完成当前的 DOM 更新。这在处理 DOM 操作或依赖 DOM 状态的代码时特别有用&#xff0c;因为 Vue 是异步执行 DOM 更新的。 用法&#xff1a; javascript this.$nextTick(callbac…

多态及相关

多态及相关 多态的概念多态实现的两个条件及特殊情况虚函数虚函数重写的例外C11 override 和 final 重载、覆盖(重写)、隐藏(重定义)的对比题目1抽象类接口继承和实现继承 题目2&#xff08;很重要&#xff09;多态的原理虚函数表为什么Derive中的func4()在监视窗口里没有显示出…

利用大模型提升个性化推荐的异构知识融合方法

在推荐系统中&#xff0c;分析和挖掘用户行为是至关重要的&#xff0c;尤其是在美团外卖这样的平台上&#xff0c;用户行为表现出多样性&#xff0c;包括不同的行为主体&#xff08;如商家和产品&#xff09;、内容&#xff08;如曝光、点击和订单&#xff09;和场景&#xff0…

陪诊师了解

介绍 最近两年兴起的一个职业&#xff1a;陪诊师 一句话介绍&#xff1a;陪诊师是陪护、协作病人看病的一个职业。 以下是B站视频一位陪诊师的讲述。 External Player - 哔哩哔哩嵌入式外链播放器 前景 处于起步阶段&#xff0c;过去是一些高收入阶层的人才会享受得起的一…

Javascript基础(三)

Javascript基础&#xff08;一&#xff09; Javascript基础&#xff08;二&#xff09; 引用数据类型 在之前的文章中&#xff0c;我们提及了与基本数据类型并列的引用数据类型&#xff0c;当时提到引用数据类型大致分为三类&#xff1a;数组Array&#xff0c;函数Function&a…

GPT-ArcGIS数据处理、空间分析、可视化及多案例综合应用

在数字化和智能化的浪潮中&#xff0c;GIS&#xff08;地理信息系统&#xff09;和GPT&#xff08;生成式预训练模型&#xff09;的结合正日益成为推动科研、城市规划、环境监测等领域发展的关键技术。GIS以其强大的空间数据处理、先进的空间分析工具、灵活的地图制作与可视化能…

SQL-Server数据库--视图

1.创建视图 create view as 子查询 子查询可以是任意发杂的select语句&#xff0c;但通常不允许含有order by和distinct短语 --使用T-SQL语句创建新视图view_score, 要求只显示学生的学号、姓名、课号、课程名称及成绩。 create view view_score as select from tb_stude…

JavaEE初阶-多线程易忘点总结

文章目录 1.PCBPID文件描述符表内存指针状态上下文优先级记账信息tgid 2.线程与进程的区别3.sleep和interrupt方法的关系变量终止线程interrupt方法终止线程 4.线程状态5.出现线程不安全的原因线程在系统中是随即调度&#xff0c;抢占式执行的。多个线程修改同一个变量线程针对…

《MySQL对数据库中表的结构的操作》

文章目录 一、建表二、查看表结构所有能查看到数据库&#xff0c;表的操作痕迹的本质都是服务器保存下来了这些操作记录。 三、修改表1.改表名字2.添加表记录3.添加表的更多字段4.修改表的字段5. 删除表的字段 总结 以下的数据库表的操作全是基于user_db这个数据库操作的&#…

如何加入亚马逊云科技AWS特邀技领云合作博主

这一年来&#xff0c;小李哥帮助过上千名小伙伴学习AWS和考取认证&#xff0c;这次非常荣幸能和丸子爸比大哥、程序员学习日常成为第一批亚马逊AWS云领袖计划的特邀合作博主&#xff01;感谢AWS培训与认证各位老师的支持&#xff0c;未来小李哥会继续坚持社区分享&#xff0c;带…