使用docker搭建redis主从

 一、构建 Docker 环境

1、创建 dockerfile

FROM centos:latest
RUN groupadd -r redis && useradd  -r -g redis redis
RUN yum -y update &&  yum -y install epel-release && yum -y install redis && yum -y install net-tools
EXPOSE 6379

 
2、构建镜像

docker build -t docker-test .

 
3、查看当前镜像

docker iamges
REPOSITORY    TAG         IMAGE ID        CREATED             SIZE
docker-test   latest      ccebd30e466a    12 minutes ago      396MB
centos        latest      470671670cac    7 weeks ago         237MB

 
4、查看docker默认的网络类型

docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
a43e79987e98        bridge              bridge              local
6b73067403dc        host                host                local
b8ad4981e57e        none                null                local

 
5、创建自定义网络类型

docker network create  --subnet=172.10.0.0/16  haveyb-network


 
二、搭建 Redis 主从

1、创建 redis-master 容器

docker run -itd --name  redis-master  --net haveyb-network  -p 6380:6379  --ip 172.10.0.2  docker-test


参数解释:

-i: 以交互模式运行容器,通常与 -t 同时使用

-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用

-d: 后台运行容器,并返回容器ID;

--name: 为创建的容器命名

--net: 指定网络模式(这里指定刚才创建的自定义网络模式)

-p: 端口映射,格式为:主机(宿主)端口:容器端口

--ip: 为容器制定一个固定的ip

后面再指定一下使用的镜像(这里使用的就是刚才创建的镜像 docker-test)


 
2、查看运行中的容器

docker ps -a
CONTAINER ID       IMAGE          COMMAND             CREATED
dc9344bbd25f     docker-test     "/bin/bash"          2 minutes agoSTATUS           PORTS                         NAMES
Up 2 minutes     0.0.0.0:6380->6379/tcp        redis-master

注:查看某个网络下容器的ip地址

docker network inspect haveyb-network


 
3、创建 redis-slave1、redis-slave2 容器

docker run -itd --name  redis-slave1  --net haveyb-network  -p 6381:6379  --ip 172.10.0.3  docker-testdocker run -itd --name  redis-slave2  --net haveyb-network  -p 6382:6379  --ip 172.10.0.4  docker-test

 
4、配置 redis-master 容器

(1)进入redis-master 容器

docker exec -it redis-master bash


注:退出容器 `exit`

 

(2)修改redis.conf 配置文件

vi /etc/redis.conf


(3)修改参数 bind 127.0.0.1 为 0.0.0.0

bind 0.0.0.0

(4)设置主redis 密码

requirepass YourPasswordSettings


(5)启动主redis

redis-server /etc/redis.conf &

(6)redis-cli

redis-cli
auth yourPasswordSettings

 
5、配置 redis-slave1

(1)进入redis-slave1 容器

docker exec -it redis-slave1 bash

(2)修改redis.conf 配置文件

vi /etc/redis.conf


(3)修改参数 bind 127.0.0.1 为 0.0.0.0

bind 0.0.0.0

(4)设置 masterauth,添加以下代码(主redis设置密码后,从redis连接需要此参数验权)

masterauth yourPasswordSettings

(5)设置 slaveof (设置主 redis 的 ip 和 port)

slaveof 172.10.0.2 6379

(5)启动从redis

redis-server /etc/redis.conf &

(6)redis 客户端

redis-cli

 
 6、配置 redis-slave2

同配置 redis-slave1

 
7、在redis -cli中执行 `info replication` 可以查看主从信息

 redis-master

127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=172.10.0.3,port=6379,state=online,offset=3105,lag=1
slave1:ip=172.10.0.4,port=6379,state=online,offset=3105,lag=1
master_replid:a3a43b1957bc5b9f18cb3004301990085e49b0d1
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:3105
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:3105
127.0.0.1:6379> 

redis-slave1

127.0.0.1:6379> info replication 
# Replication
role:slave
master_host:172.10.0.2
master_port:6379
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:3203
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:a3a43b1957bc5b9f18cb3004301990085e49b0d1
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:3203
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:3203
127.0.0.1:6379> 

 
8、在 redis-master 中写入key,redis-slave1 和 redis-slave2 已经可以获取了

 

 
 

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

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

相关文章

【源码探索】.NET中的List,是哪种数据结构

“当你提出疑问并开始思考时&#xff0c;答案就离你不远了”图片&#xff1a;奥森公园的向日葵 拍摄于2022年7月23日 摄影师&#xff1a;刘先生01—问题缘起严格来说应该是List<T>&#xff0c;因为.NET的核心基础类库中&#xff0c;并没有List&#xff0c;作为泛型类型的…

dpdk对虚拟化的支持调研

目录&#xff1a; 虚拟化dpdk的实现研究 virtiovhostSR-IOV热迁移相关研究拓展本文记录近期对dpdk在虚拟化和云计算领域应用的研究成果&#xff0c;内容梳理如下。 虚拟化 虚拟化&#xff0c;抽象来说&#xff0c;就是将物理资源逻辑化。具体来说&#xff0c;虚拟技术的实现是在…

服务器环境

一 linux 系统搭建Java项目环境 1 环境准备&#xff1a;jdk,tomcat, nginx,reids,mysql jdk:java环境 Tomcat&#xff1a;Java项目服务器 nginx&#xff1a;项目静态资源&#xff0c;域名解析&#xff08;ssl&#xff09; redis: 项目可能会用到 mysql: 数据库 环境转载于:htt…

隐藏键盘_三星新专利:带有隐藏键盘的三折叠屏手机

10月31日消息 众所周知&#xff0c;三星现已推出四款折叠屏机型(Fold、Fold 2、Z Flip、W20)&#xff0c;而此前多有传言表示三星下一代折叠屏机型(以 Galaxy Z Fold 3 代称)将在目前折叠屏手机的基础上增加 S Pen&#xff0c;而昨日公布的一份专利也侧面辅证了这一说法。此外&…

Blazor学习之旅(3)实现一个Todo应用

【Blazor】| 总结/Edison Zhou大家好&#xff0c;我是Edison。最近在学习Blazor做全栈开发&#xff0c;因此根据老习惯&#xff0c;我会将我的学习过程记录下来&#xff0c;一来体系化整理&#xff0c;二来作为笔记供将来翻看。本篇&#xff0c;我们通过一个简单的Todo示例应用…

JavaScript 省市级联效果

为什么80%的码农都做不了架构师&#xff1f;>>> JavaScript 省市级联效果 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">2 <html xmlns"http…

20分钟完成Mac上的 LNMP 环境部署,优雅·高效开发(Docker方式)

一、前言 对于很多开发者来说&#xff0c;突然转到在 mac 系统开发&#xff0c;可能会非常难受&#xff0c;主要有以下几个原因 1、mac 上安装软件程序坑多&#xff0c;比如安装 PHP、Nginx&#xff0c;会存在很多使用 linux 或 windows 时没有遇到过的坑 2、对 mac 系统不熟…

可编程交换时代就在这里

在第一批网络处理器推出20年后&#xff0c;我们正在向完全可编程数据平面迈进&#xff0c;网络运营商在虚拟化方面的努力推动了这一趋势的发展。 大多数物理网络系统正在被运行在网络核心和边缘的服务器上的虚拟网络功能&#xff08;VNF&#xff09;取代。这些服务器一般采用通…

【智力大冲浪】

【智力大冲浪】riddle内存限制&#xff1a; 128M【题目描述】例 1 智力大冲浪&#xff08;riddle.pas&#xff09;。【题目描述】小伟报名参加中央电视台的智力大冲浪节目。本次挑战赛吸引了众多参赛者&#xff0c;主持人为了表彰大家的勇气&#xff0c;先奖励每个参赛者 m 元。…

调试 不弹出 小米_时隔六年,小米NFC碰碰贴复活,碰一下自动亮灯、联网、投屏...

有朋友问我&#xff0c;NFC除了刷门禁、刷公交、离线支付外&#xff0c;还能干什么&#xff1f;实际上NFC的应用场景远不止于此&#xff0c;今天就带大家开开眼界。今年是小米十周年&#xff0c;各种酷玩新品不断&#xff0c;其中“小米碰碰贴2”就是一款便宜又好玩的产品。小米…

微信小程序把玩(三)tabBar底部导航

为什么80%的码农都做不了架构师&#xff1f;>>> tabBar相对而言用的还是比较多的&#xff0c;但是用起来并没有难&#xff0c;在app.json中配置下tabBar即可&#xff0c;注意tabBar至少需要两个最多五个Item选项 主要属性&#xff1a; 对于tabBar整体属性设置&…

WPF 之列表分页控件

WPF 之列表分页控件控件名&#xff1a;WindowAcrylicBlur作者&#xff1a; WPFDevelopersOrg - 黄佳 | 驚鏵原文链接&#xff1a; https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用大于等于.NET40。Visual Studio 2022。项目使用 MIT 开源许可协议。新建Paginat…

高并发下防止库存超卖解决方案

一、概述 目前网上关于防止库存超卖&#xff0c;我没找到可以支持一次购买多件的&#xff0c;都是基于一次只能购买一件做的秒杀方案&#xff0c;但是实际场景中&#xff0c;一般秒杀活动都是支持&#xff11;&#xff5e;&#xff15;件的&#xff0c;因此为了补缺&#xff0…

【几何/分治】【最短路】【数学期望】Day 10.24

1、斜率 可以证明如果两点之间还有一点的话那么原来的两个点连线一定不会是最大斜率 然后我就写了个沙茶分治………… 其实根据上面的推论只用枚举相邻的两个点&#xff0c;扫一遍就可以了 1 #include <cstdio>2 #include <algorithm>3 #include <iostream>4…

K8s 介绍

过去一段时间&#xff0c;公司事情比较多&#xff0c;现在稍微能好点&#xff0c;今天进一步验证自己K8S 集群环境&#xff0c;遇到不少问题&#xff0c; 发现从自己的master 上无法访问node 的pod&#xff0c; 然后一堆search 。 config 。。 [rootk8s-master ~]# systemctl s…

easypoi needmerge失效_EasyPOI简单用例,简单有效

用poi导出Excel表格&#xff0c;需要配置很多东西&#xff0c;也比较麻烦&#xff0c;这里使用poi的封装easypoi&#xff0c;可以快速配置&#xff0c;实现Excel或者word文件的导出。这里我们结合SpringMVC开发easypoi。1&#xff0c;导入以下3个.jar包:这里是springMVC和easyp…

禁止sethc.exe运行 防止3389的sethc后门

废话&#xff1a;在土司看到的一篇文章,发私信给那个哥们儿说让不让转载,结果还没回复我就在百度看到相同的文章。他自己也是转载的。这哥们儿ID迟早被ban 文章转载自:http://www.jb51.net/hack/64484.html 点“开始”&#xff0c;在“运行”中敲入gpedit.msc依次展开“用户配置…

Mac 与虚拟机中的linux集群共享文件目录设置

一、环境介绍 本机&#xff1a;Macos Big Sur系统 虚拟机软件&#xff1a;vmware-fusion 虚拟机上虚拟的linux - centos7 系统 二、实现的效果 在mac上创建一个/Users/SH-Server/vm-vagrant目录&#xff0c;作为之后和虚拟机linux系统 /data 文件夹的共享目录。 我们最终想…

jsp编程技术徐天凤课后答案_jsp编程技术教材课后习题.doc

jsp编程技术教材课后习题JSP编程技术习题集1.6 本 章 习 题思考题(1)为什么要为JDK设置环境变量&#xff1f;(2)Tomcat和JDK是什么关系&#xff1f;(3)什么是Web服务根目录、子目录、相对目录&#xff1f;如何配置虚拟目录&#xff1f;(4)什么是B/S模式&#xff1f;(5)JSP、Jav…

JVM知识(一)

java三大流&#xff1a;数据流、控制流、指令流 线程是执行程序的最小单元&#xff0c;一个线程中也有这些东西。 java 运行时数据区&#xff1a; 1.程序计数器 指向当前线程正在执行的字节码指令地址。如果此时从一个线程转为执行另一个线程&#xff0c;此时就会中断&#xff…