使用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.pswp.cn/news/282070.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282070.shtml
英文地址,請注明出處:http://en.pswp.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…