Redis 集群-主从复制(基于Docker Compose)

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

更多关于Docker及Docker Compose的知识可以进入该链接

Redis 单机

#mermaid-svg-TITobq5rB7ozsxlF .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-TITobq5rB7ozsxlF .label text{fill:#333}#mermaid-svg-TITobq5rB7ozsxlF .node rect,#mermaid-svg-TITobq5rB7ozsxlF .node circle,#mermaid-svg-TITobq5rB7ozsxlF .node ellipse,#mermaid-svg-TITobq5rB7ozsxlF .node polygon,#mermaid-svg-TITobq5rB7ozsxlF .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-TITobq5rB7ozsxlF .node .label{text-align:center;fill:#333}#mermaid-svg-TITobq5rB7ozsxlF .node.clickable{cursor:pointer}#mermaid-svg-TITobq5rB7ozsxlF .arrowheadPath{fill:#333}#mermaid-svg-TITobq5rB7ozsxlF .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-TITobq5rB7ozsxlF .flowchart-link{stroke:#333;fill:none}#mermaid-svg-TITobq5rB7ozsxlF .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-TITobq5rB7ozsxlF .edgeLabel rect{opacity:0.9}#mermaid-svg-TITobq5rB7ozsxlF .edgeLabel span{color:#333}#mermaid-svg-TITobq5rB7ozsxlF .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-TITobq5rB7ozsxlF .cluster text{fill:#333}#mermaid-svg-TITobq5rB7ozsxlF div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-TITobq5rB7ozsxlF .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-TITobq5rB7ozsxlF text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-TITobq5rB7ozsxlF .actor-line{stroke:grey}#mermaid-svg-TITobq5rB7ozsxlF .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-TITobq5rB7ozsxlF .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-TITobq5rB7ozsxlF #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-TITobq5rB7ozsxlF .sequenceNumber{fill:#fff}#mermaid-svg-TITobq5rB7ozsxlF #sequencenumber{fill:#333}#mermaid-svg-TITobq5rB7ozsxlF #crosshead path{fill:#333;stroke:#333}#mermaid-svg-TITobq5rB7ozsxlF .messageText{fill:#333;stroke:#333}#mermaid-svg-TITobq5rB7ozsxlF .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-TITobq5rB7ozsxlF .labelText,#mermaid-svg-TITobq5rB7ozsxlF .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-TITobq5rB7ozsxlF .loopText,#mermaid-svg-TITobq5rB7ozsxlF .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-TITobq5rB7ozsxlF .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-TITobq5rB7ozsxlF .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-TITobq5rB7ozsxlF .noteText,#mermaid-svg-TITobq5rB7ozsxlF .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-TITobq5rB7ozsxlF .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-TITobq5rB7ozsxlF .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-TITobq5rB7ozsxlF .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-TITobq5rB7ozsxlF .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-TITobq5rB7ozsxlF .section{stroke:none;opacity:0.2}#mermaid-svg-TITobq5rB7ozsxlF .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-TITobq5rB7ozsxlF .section2{fill:#fff400}#mermaid-svg-TITobq5rB7ozsxlF .section1,#mermaid-svg-TITobq5rB7ozsxlF .section3{fill:#fff;opacity:0.2}#mermaid-svg-TITobq5rB7ozsxlF .sectionTitle0{fill:#333}#mermaid-svg-TITobq5rB7ozsxlF .sectionTitle1{fill:#333}#mermaid-svg-TITobq5rB7ozsxlF .sectionTitle2{fill:#333}#mermaid-svg-TITobq5rB7ozsxlF .sectionTitle3{fill:#333}#mermaid-svg-TITobq5rB7ozsxlF .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-TITobq5rB7ozsxlF .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-TITobq5rB7ozsxlF .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-TITobq5rB7ozsxlF .grid path{stroke-width:0}#mermaid-svg-TITobq5rB7ozsxlF .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-TITobq5rB7ozsxlF .task{stroke-width:2}#mermaid-svg-TITobq5rB7ozsxlF .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-TITobq5rB7ozsxlF .taskText:not([font-size]){font-size:11px}#mermaid-svg-TITobq5rB7ozsxlF .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-TITobq5rB7ozsxlF .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-TITobq5rB7ozsxlF .task.clickable{cursor:pointer}#mermaid-svg-TITobq5rB7ozsxlF .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-TITobq5rB7ozsxlF .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-TITobq5rB7ozsxlF .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-TITobq5rB7ozsxlF .taskText0,#mermaid-svg-TITobq5rB7ozsxlF .taskText1,#mermaid-svg-TITobq5rB7ozsxlF .taskText2,#mermaid-svg-TITobq5rB7ozsxlF .taskText3{fill:#fff}#mermaid-svg-TITobq5rB7ozsxlF .task0,#mermaid-svg-TITobq5rB7ozsxlF .task1,#mermaid-svg-TITobq5rB7ozsxlF .task2,#mermaid-svg-TITobq5rB7ozsxlF .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-TITobq5rB7ozsxlF .taskTextOutside0,#mermaid-svg-TITobq5rB7ozsxlF .taskTextOutside2{fill:#000}#mermaid-svg-TITobq5rB7ozsxlF .taskTextOutside1,#mermaid-svg-TITobq5rB7ozsxlF .taskTextOutside3{fill:#000}#mermaid-svg-TITobq5rB7ozsxlF .active0,#mermaid-svg-TITobq5rB7ozsxlF .active1,#mermaid-svg-TITobq5rB7ozsxlF .active2,#mermaid-svg-TITobq5rB7ozsxlF .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-TITobq5rB7ozsxlF .activeText0,#mermaid-svg-TITobq5rB7ozsxlF .activeText1,#mermaid-svg-TITobq5rB7ozsxlF .activeText2,#mermaid-svg-TITobq5rB7ozsxlF .activeText3{fill:#000 !important}#mermaid-svg-TITobq5rB7ozsxlF .done0,#mermaid-svg-TITobq5rB7ozsxlF .done1,#mermaid-svg-TITobq5rB7ozsxlF .done2,#mermaid-svg-TITobq5rB7ozsxlF .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-TITobq5rB7ozsxlF .doneText0,#mermaid-svg-TITobq5rB7ozsxlF .doneText1,#mermaid-svg-TITobq5rB7ozsxlF .doneText2,#mermaid-svg-TITobq5rB7ozsxlF .doneText3{fill:#000 !important}#mermaid-svg-TITobq5rB7ozsxlF .crit0,#mermaid-svg-TITobq5rB7ozsxlF .crit1,#mermaid-svg-TITobq5rB7ozsxlF .crit2,#mermaid-svg-TITobq5rB7ozsxlF .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-TITobq5rB7ozsxlF .activeCrit0,#mermaid-svg-TITobq5rB7ozsxlF .activeCrit1,#mermaid-svg-TITobq5rB7ozsxlF .activeCrit2,#mermaid-svg-TITobq5rB7ozsxlF .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-TITobq5rB7ozsxlF .doneCrit0,#mermaid-svg-TITobq5rB7ozsxlF .doneCrit1,#mermaid-svg-TITobq5rB7ozsxlF .doneCrit2,#mermaid-svg-TITobq5rB7ozsxlF .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-TITobq5rB7ozsxlF .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-TITobq5rB7ozsxlF .milestoneText{font-style:italic}#mermaid-svg-TITobq5rB7ozsxlF .doneCritText0,#mermaid-svg-TITobq5rB7ozsxlF .doneCritText1,#mermaid-svg-TITobq5rB7ozsxlF .doneCritText2,#mermaid-svg-TITobq5rB7ozsxlF .doneCritText3{fill:#000 !important}#mermaid-svg-TITobq5rB7ozsxlF .activeCritText0,#mermaid-svg-TITobq5rB7ozsxlF .activeCritText1,#mermaid-svg-TITobq5rB7ozsxlF .activeCritText2,#mermaid-svg-TITobq5rB7ozsxlF .activeCritText3{fill:#000 !important}#mermaid-svg-TITobq5rB7ozsxlF .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-TITobq5rB7ozsxlF g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-TITobq5rB7ozsxlF g.classGroup text .title{font-weight:bolder}#mermaid-svg-TITobq5rB7ozsxlF g.clickable{cursor:pointer}#mermaid-svg-TITobq5rB7ozsxlF g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-TITobq5rB7ozsxlF g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-TITobq5rB7ozsxlF .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-TITobq5rB7ozsxlF .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-TITobq5rB7ozsxlF .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-TITobq5rB7ozsxlF .dashed-line{stroke-dasharray:3}#mermaid-svg-TITobq5rB7ozsxlF #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-TITobq5rB7ozsxlF #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-TITobq5rB7ozsxlF #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-TITobq5rB7ozsxlF #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-TITobq5rB7ozsxlF #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-TITobq5rB7ozsxlF #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-TITobq5rB7ozsxlF #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-TITobq5rB7ozsxlF #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-TITobq5rB7ozsxlF .commit-id,#mermaid-svg-TITobq5rB7ozsxlF .commit-msg,#mermaid-svg-TITobq5rB7ozsxlF .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-TITobq5rB7ozsxlF .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-TITobq5rB7ozsxlF .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-TITobq5rB7ozsxlF g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-TITobq5rB7ozsxlF g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-TITobq5rB7ozsxlF g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-TITobq5rB7ozsxlF g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-TITobq5rB7ozsxlF g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-TITobq5rB7ozsxlF g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-TITobq5rB7ozsxlF .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-TITobq5rB7ozsxlF .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-TITobq5rB7ozsxlF .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-TITobq5rB7ozsxlF .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-TITobq5rB7ozsxlF .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-TITobq5rB7ozsxlF .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-TITobq5rB7ozsxlF .edgeLabel text{fill:#333}#mermaid-svg-TITobq5rB7ozsxlF .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-TITobq5rB7ozsxlF .node circle.state-start{fill:black;stroke:black}#mermaid-svg-TITobq5rB7ozsxlF .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-TITobq5rB7ozsxlF #statediagram-barbEnd{fill:#9370db}#mermaid-svg-TITobq5rB7ozsxlF .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-TITobq5rB7ozsxlF .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-TITobq5rB7ozsxlF .statediagram-state .divider{stroke:#9370db}#mermaid-svg-TITobq5rB7ozsxlF .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-TITobq5rB7ozsxlF .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-TITobq5rB7ozsxlF .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-TITobq5rB7ozsxlF .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-TITobq5rB7ozsxlF .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-TITobq5rB7ozsxlF .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-TITobq5rB7ozsxlF .note-edge{stroke-dasharray:5}#mermaid-svg-TITobq5rB7ozsxlF .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-TITobq5rB7ozsxlF .error-icon{fill:#522}#mermaid-svg-TITobq5rB7ozsxlF .error-text{fill:#522;stroke:#522}#mermaid-svg-TITobq5rB7ozsxlF .edge-thickness-normal{stroke-width:2px}#mermaid-svg-TITobq5rB7ozsxlF .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-TITobq5rB7ozsxlF .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-TITobq5rB7ozsxlF .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-TITobq5rB7ozsxlF .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-TITobq5rB7ozsxlF .marker{fill:#333}#mermaid-svg-TITobq5rB7ozsxlF .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;} #mermaid-svg-TITobq5rB7ozsxlF {color: rgba(0, 0, 0, 0.75);font: ;}

读取能力
写的速度
Redis 单机
110000次/s
81000次/s

Redis 主从复制

一个主数据库可以拥有多个从数据库,而一个从数据库只能拥有一个主数据库。Master不管Slave, Slave去找Master,Slave与Slave之间是无法进行通讯的。

#mermaid-svg-tymhPVqbDkyJg9CP .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-tymhPVqbDkyJg9CP .label text{fill:#333}#mermaid-svg-tymhPVqbDkyJg9CP .node rect,#mermaid-svg-tymhPVqbDkyJg9CP .node circle,#mermaid-svg-tymhPVqbDkyJg9CP .node ellipse,#mermaid-svg-tymhPVqbDkyJg9CP .node polygon,#mermaid-svg-tymhPVqbDkyJg9CP .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-tymhPVqbDkyJg9CP .node .label{text-align:center;fill:#333}#mermaid-svg-tymhPVqbDkyJg9CP .node.clickable{cursor:pointer}#mermaid-svg-tymhPVqbDkyJg9CP .arrowheadPath{fill:#333}#mermaid-svg-tymhPVqbDkyJg9CP .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-tymhPVqbDkyJg9CP .flowchart-link{stroke:#333;fill:none}#mermaid-svg-tymhPVqbDkyJg9CP .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-tymhPVqbDkyJg9CP .edgeLabel rect{opacity:0.9}#mermaid-svg-tymhPVqbDkyJg9CP .edgeLabel span{color:#333}#mermaid-svg-tymhPVqbDkyJg9CP .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-tymhPVqbDkyJg9CP .cluster text{fill:#333}#mermaid-svg-tymhPVqbDkyJg9CP div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-tymhPVqbDkyJg9CP .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-tymhPVqbDkyJg9CP text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-tymhPVqbDkyJg9CP .actor-line{stroke:grey}#mermaid-svg-tymhPVqbDkyJg9CP .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-tymhPVqbDkyJg9CP .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-tymhPVqbDkyJg9CP #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-tymhPVqbDkyJg9CP .sequenceNumber{fill:#fff}#mermaid-svg-tymhPVqbDkyJg9CP #sequencenumber{fill:#333}#mermaid-svg-tymhPVqbDkyJg9CP #crosshead path{fill:#333;stroke:#333}#mermaid-svg-tymhPVqbDkyJg9CP .messageText{fill:#333;stroke:#333}#mermaid-svg-tymhPVqbDkyJg9CP .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-tymhPVqbDkyJg9CP .labelText,#mermaid-svg-tymhPVqbDkyJg9CP .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-tymhPVqbDkyJg9CP .loopText,#mermaid-svg-tymhPVqbDkyJg9CP .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-tymhPVqbDkyJg9CP .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-tymhPVqbDkyJg9CP .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-tymhPVqbDkyJg9CP .noteText,#mermaid-svg-tymhPVqbDkyJg9CP .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-tymhPVqbDkyJg9CP .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-tymhPVqbDkyJg9CP .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-tymhPVqbDkyJg9CP .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-tymhPVqbDkyJg9CP .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-tymhPVqbDkyJg9CP .section{stroke:none;opacity:0.2}#mermaid-svg-tymhPVqbDkyJg9CP .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-tymhPVqbDkyJg9CP .section2{fill:#fff400}#mermaid-svg-tymhPVqbDkyJg9CP .section1,#mermaid-svg-tymhPVqbDkyJg9CP .section3{fill:#fff;opacity:0.2}#mermaid-svg-tymhPVqbDkyJg9CP .sectionTitle0{fill:#333}#mermaid-svg-tymhPVqbDkyJg9CP .sectionTitle1{fill:#333}#mermaid-svg-tymhPVqbDkyJg9CP .sectionTitle2{fill:#333}#mermaid-svg-tymhPVqbDkyJg9CP .sectionTitle3{fill:#333}#mermaid-svg-tymhPVqbDkyJg9CP .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-tymhPVqbDkyJg9CP .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-tymhPVqbDkyJg9CP .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-tymhPVqbDkyJg9CP .grid path{stroke-width:0}#mermaid-svg-tymhPVqbDkyJg9CP .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-tymhPVqbDkyJg9CP .task{stroke-width:2}#mermaid-svg-tymhPVqbDkyJg9CP .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-tymhPVqbDkyJg9CP .taskText:not([font-size]){font-size:11px}#mermaid-svg-tymhPVqbDkyJg9CP .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-tymhPVqbDkyJg9CP .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-tymhPVqbDkyJg9CP .task.clickable{cursor:pointer}#mermaid-svg-tymhPVqbDkyJg9CP .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-tymhPVqbDkyJg9CP .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-tymhPVqbDkyJg9CP .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-tymhPVqbDkyJg9CP .taskText0,#mermaid-svg-tymhPVqbDkyJg9CP .taskText1,#mermaid-svg-tymhPVqbDkyJg9CP .taskText2,#mermaid-svg-tymhPVqbDkyJg9CP .taskText3{fill:#fff}#mermaid-svg-tymhPVqbDkyJg9CP .task0,#mermaid-svg-tymhPVqbDkyJg9CP .task1,#mermaid-svg-tymhPVqbDkyJg9CP .task2,#mermaid-svg-tymhPVqbDkyJg9CP .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-tymhPVqbDkyJg9CP .taskTextOutside0,#mermaid-svg-tymhPVqbDkyJg9CP .taskTextOutside2{fill:#000}#mermaid-svg-tymhPVqbDkyJg9CP .taskTextOutside1,#mermaid-svg-tymhPVqbDkyJg9CP .taskTextOutside3{fill:#000}#mermaid-svg-tymhPVqbDkyJg9CP .active0,#mermaid-svg-tymhPVqbDkyJg9CP .active1,#mermaid-svg-tymhPVqbDkyJg9CP .active2,#mermaid-svg-tymhPVqbDkyJg9CP .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-tymhPVqbDkyJg9CP .activeText0,#mermaid-svg-tymhPVqbDkyJg9CP .activeText1,#mermaid-svg-tymhPVqbDkyJg9CP .activeText2,#mermaid-svg-tymhPVqbDkyJg9CP .activeText3{fill:#000 !important}#mermaid-svg-tymhPVqbDkyJg9CP .done0,#mermaid-svg-tymhPVqbDkyJg9CP .done1,#mermaid-svg-tymhPVqbDkyJg9CP .done2,#mermaid-svg-tymhPVqbDkyJg9CP .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-tymhPVqbDkyJg9CP .doneText0,#mermaid-svg-tymhPVqbDkyJg9CP .doneText1,#mermaid-svg-tymhPVqbDkyJg9CP .doneText2,#mermaid-svg-tymhPVqbDkyJg9CP .doneText3{fill:#000 !important}#mermaid-svg-tymhPVqbDkyJg9CP .crit0,#mermaid-svg-tymhPVqbDkyJg9CP .crit1,#mermaid-svg-tymhPVqbDkyJg9CP .crit2,#mermaid-svg-tymhPVqbDkyJg9CP .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-tymhPVqbDkyJg9CP .activeCrit0,#mermaid-svg-tymhPVqbDkyJg9CP .activeCrit1,#mermaid-svg-tymhPVqbDkyJg9CP .activeCrit2,#mermaid-svg-tymhPVqbDkyJg9CP .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-tymhPVqbDkyJg9CP .doneCrit0,#mermaid-svg-tymhPVqbDkyJg9CP .doneCrit1,#mermaid-svg-tymhPVqbDkyJg9CP .doneCrit2,#mermaid-svg-tymhPVqbDkyJg9CP .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-tymhPVqbDkyJg9CP .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-tymhPVqbDkyJg9CP .milestoneText{font-style:italic}#mermaid-svg-tymhPVqbDkyJg9CP .doneCritText0,#mermaid-svg-tymhPVqbDkyJg9CP .doneCritText1,#mermaid-svg-tymhPVqbDkyJg9CP .doneCritText2,#mermaid-svg-tymhPVqbDkyJg9CP .doneCritText3{fill:#000 !important}#mermaid-svg-tymhPVqbDkyJg9CP .activeCritText0,#mermaid-svg-tymhPVqbDkyJg9CP .activeCritText1,#mermaid-svg-tymhPVqbDkyJg9CP .activeCritText2,#mermaid-svg-tymhPVqbDkyJg9CP .activeCritText3{fill:#000 !important}#mermaid-svg-tymhPVqbDkyJg9CP .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-tymhPVqbDkyJg9CP g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-tymhPVqbDkyJg9CP g.classGroup text .title{font-weight:bolder}#mermaid-svg-tymhPVqbDkyJg9CP g.clickable{cursor:pointer}#mermaid-svg-tymhPVqbDkyJg9CP g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-tymhPVqbDkyJg9CP g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-tymhPVqbDkyJg9CP .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-tymhPVqbDkyJg9CP .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-tymhPVqbDkyJg9CP .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-tymhPVqbDkyJg9CP .dashed-line{stroke-dasharray:3}#mermaid-svg-tymhPVqbDkyJg9CP #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-tymhPVqbDkyJg9CP #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-tymhPVqbDkyJg9CP #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-tymhPVqbDkyJg9CP #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-tymhPVqbDkyJg9CP #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-tymhPVqbDkyJg9CP #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-tymhPVqbDkyJg9CP #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-tymhPVqbDkyJg9CP #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-tymhPVqbDkyJg9CP .commit-id,#mermaid-svg-tymhPVqbDkyJg9CP .commit-msg,#mermaid-svg-tymhPVqbDkyJg9CP .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-tymhPVqbDkyJg9CP .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-tymhPVqbDkyJg9CP .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-tymhPVqbDkyJg9CP g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-tymhPVqbDkyJg9CP g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-tymhPVqbDkyJg9CP g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-tymhPVqbDkyJg9CP g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-tymhPVqbDkyJg9CP g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-tymhPVqbDkyJg9CP g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-tymhPVqbDkyJg9CP .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-tymhPVqbDkyJg9CP .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-tymhPVqbDkyJg9CP .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-tymhPVqbDkyJg9CP .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-tymhPVqbDkyJg9CP .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-tymhPVqbDkyJg9CP .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-tymhPVqbDkyJg9CP .edgeLabel text{fill:#333}#mermaid-svg-tymhPVqbDkyJg9CP .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-tymhPVqbDkyJg9CP .node circle.state-start{fill:black;stroke:black}#mermaid-svg-tymhPVqbDkyJg9CP .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-tymhPVqbDkyJg9CP #statediagram-barbEnd{fill:#9370db}#mermaid-svg-tymhPVqbDkyJg9CP .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-tymhPVqbDkyJg9CP .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-tymhPVqbDkyJg9CP .statediagram-state .divider{stroke:#9370db}#mermaid-svg-tymhPVqbDkyJg9CP .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-tymhPVqbDkyJg9CP .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-tymhPVqbDkyJg9CP .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-tymhPVqbDkyJg9CP .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-tymhPVqbDkyJg9CP .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-tymhPVqbDkyJg9CP .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-tymhPVqbDkyJg9CP .note-edge{stroke-dasharray:5}#mermaid-svg-tymhPVqbDkyJg9CP .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-tymhPVqbDkyJg9CP .error-icon{fill:#522}#mermaid-svg-tymhPVqbDkyJg9CP .error-text{fill:#522;stroke:#522}#mermaid-svg-tymhPVqbDkyJg9CP .edge-thickness-normal{stroke-width:2px}#mermaid-svg-tymhPVqbDkyJg9CP .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-tymhPVqbDkyJg9CP .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-tymhPVqbDkyJg9CP .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-tymhPVqbDkyJg9CP .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-tymhPVqbDkyJg9CP .marker{fill:#333}#mermaid-svg-tymhPVqbDkyJg9CP .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;} #mermaid-svg-tymhPVqbDkyJg9CP {color: rgba(0, 0, 0, 0.75);font: ;}

Redis Master 读写
Redis Slave 只读
Redis Slave 只读

同步的工作方式如下:

​ 主机启动后台保存过程以生成RDB文件。同时,它开始缓冲从客户端收到的所有新写命令。后台保存完成后,主数据库将数据库文件传输到从数据库从数据库将其保存在磁盘上,然后将其加载到内存中。然后,主服务器将所有缓冲的命令发送到副本。这是作为命令流完成的,并且与Redis协议本身的格式相同。

#mermaid-svg-c3IlVI6hFMagWV8T .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-c3IlVI6hFMagWV8T .label text{fill:#333}#mermaid-svg-c3IlVI6hFMagWV8T .node rect,#mermaid-svg-c3IlVI6hFMagWV8T .node circle,#mermaid-svg-c3IlVI6hFMagWV8T .node ellipse,#mermaid-svg-c3IlVI6hFMagWV8T .node polygon,#mermaid-svg-c3IlVI6hFMagWV8T .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-c3IlVI6hFMagWV8T .node .label{text-align:center;fill:#333}#mermaid-svg-c3IlVI6hFMagWV8T .node.clickable{cursor:pointer}#mermaid-svg-c3IlVI6hFMagWV8T .arrowheadPath{fill:#333}#mermaid-svg-c3IlVI6hFMagWV8T .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-c3IlVI6hFMagWV8T .flowchart-link{stroke:#333;fill:none}#mermaid-svg-c3IlVI6hFMagWV8T .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-c3IlVI6hFMagWV8T .edgeLabel rect{opacity:0.9}#mermaid-svg-c3IlVI6hFMagWV8T .edgeLabel span{color:#333}#mermaid-svg-c3IlVI6hFMagWV8T .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-c3IlVI6hFMagWV8T .cluster text{fill:#333}#mermaid-svg-c3IlVI6hFMagWV8T div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-c3IlVI6hFMagWV8T .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-c3IlVI6hFMagWV8T text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-c3IlVI6hFMagWV8T .actor-line{stroke:grey}#mermaid-svg-c3IlVI6hFMagWV8T .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-c3IlVI6hFMagWV8T .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-c3IlVI6hFMagWV8T #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-c3IlVI6hFMagWV8T .sequenceNumber{fill:#fff}#mermaid-svg-c3IlVI6hFMagWV8T #sequencenumber{fill:#333}#mermaid-svg-c3IlVI6hFMagWV8T #crosshead path{fill:#333;stroke:#333}#mermaid-svg-c3IlVI6hFMagWV8T .messageText{fill:#333;stroke:#333}#mermaid-svg-c3IlVI6hFMagWV8T .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-c3IlVI6hFMagWV8T .labelText,#mermaid-svg-c3IlVI6hFMagWV8T .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-c3IlVI6hFMagWV8T .loopText,#mermaid-svg-c3IlVI6hFMagWV8T .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-c3IlVI6hFMagWV8T .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-c3IlVI6hFMagWV8T .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-c3IlVI6hFMagWV8T .noteText,#mermaid-svg-c3IlVI6hFMagWV8T .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-c3IlVI6hFMagWV8T .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-c3IlVI6hFMagWV8T .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-c3IlVI6hFMagWV8T .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-c3IlVI6hFMagWV8T .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c3IlVI6hFMagWV8T .section{stroke:none;opacity:0.2}#mermaid-svg-c3IlVI6hFMagWV8T .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-c3IlVI6hFMagWV8T .section2{fill:#fff400}#mermaid-svg-c3IlVI6hFMagWV8T .section1,#mermaid-svg-c3IlVI6hFMagWV8T .section3{fill:#fff;opacity:0.2}#mermaid-svg-c3IlVI6hFMagWV8T .sectionTitle0{fill:#333}#mermaid-svg-c3IlVI6hFMagWV8T .sectionTitle1{fill:#333}#mermaid-svg-c3IlVI6hFMagWV8T .sectionTitle2{fill:#333}#mermaid-svg-c3IlVI6hFMagWV8T .sectionTitle3{fill:#333}#mermaid-svg-c3IlVI6hFMagWV8T .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c3IlVI6hFMagWV8T .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-c3IlVI6hFMagWV8T .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c3IlVI6hFMagWV8T .grid path{stroke-width:0}#mermaid-svg-c3IlVI6hFMagWV8T .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-c3IlVI6hFMagWV8T .task{stroke-width:2}#mermaid-svg-c3IlVI6hFMagWV8T .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c3IlVI6hFMagWV8T .taskText:not([font-size]){font-size:11px}#mermaid-svg-c3IlVI6hFMagWV8T .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c3IlVI6hFMagWV8T .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-c3IlVI6hFMagWV8T .task.clickable{cursor:pointer}#mermaid-svg-c3IlVI6hFMagWV8T .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-c3IlVI6hFMagWV8T .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-c3IlVI6hFMagWV8T .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-c3IlVI6hFMagWV8T .taskText0,#mermaid-svg-c3IlVI6hFMagWV8T .taskText1,#mermaid-svg-c3IlVI6hFMagWV8T .taskText2,#mermaid-svg-c3IlVI6hFMagWV8T .taskText3{fill:#fff}#mermaid-svg-c3IlVI6hFMagWV8T .task0,#mermaid-svg-c3IlVI6hFMagWV8T .task1,#mermaid-svg-c3IlVI6hFMagWV8T .task2,#mermaid-svg-c3IlVI6hFMagWV8T .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-c3IlVI6hFMagWV8T .taskTextOutside0,#mermaid-svg-c3IlVI6hFMagWV8T .taskTextOutside2{fill:#000}#mermaid-svg-c3IlVI6hFMagWV8T .taskTextOutside1,#mermaid-svg-c3IlVI6hFMagWV8T .taskTextOutside3{fill:#000}#mermaid-svg-c3IlVI6hFMagWV8T .active0,#mermaid-svg-c3IlVI6hFMagWV8T .active1,#mermaid-svg-c3IlVI6hFMagWV8T .active2,#mermaid-svg-c3IlVI6hFMagWV8T .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-c3IlVI6hFMagWV8T .activeText0,#mermaid-svg-c3IlVI6hFMagWV8T .activeText1,#mermaid-svg-c3IlVI6hFMagWV8T .activeText2,#mermaid-svg-c3IlVI6hFMagWV8T .activeText3{fill:#000 !important}#mermaid-svg-c3IlVI6hFMagWV8T .done0,#mermaid-svg-c3IlVI6hFMagWV8T .done1,#mermaid-svg-c3IlVI6hFMagWV8T .done2,#mermaid-svg-c3IlVI6hFMagWV8T .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-c3IlVI6hFMagWV8T .doneText0,#mermaid-svg-c3IlVI6hFMagWV8T .doneText1,#mermaid-svg-c3IlVI6hFMagWV8T .doneText2,#mermaid-svg-c3IlVI6hFMagWV8T .doneText3{fill:#000 !important}#mermaid-svg-c3IlVI6hFMagWV8T .crit0,#mermaid-svg-c3IlVI6hFMagWV8T .crit1,#mermaid-svg-c3IlVI6hFMagWV8T .crit2,#mermaid-svg-c3IlVI6hFMagWV8T .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-c3IlVI6hFMagWV8T .activeCrit0,#mermaid-svg-c3IlVI6hFMagWV8T .activeCrit1,#mermaid-svg-c3IlVI6hFMagWV8T .activeCrit2,#mermaid-svg-c3IlVI6hFMagWV8T .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-c3IlVI6hFMagWV8T .doneCrit0,#mermaid-svg-c3IlVI6hFMagWV8T .doneCrit1,#mermaid-svg-c3IlVI6hFMagWV8T .doneCrit2,#mermaid-svg-c3IlVI6hFMagWV8T .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-c3IlVI6hFMagWV8T .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-c3IlVI6hFMagWV8T .milestoneText{font-style:italic}#mermaid-svg-c3IlVI6hFMagWV8T .doneCritText0,#mermaid-svg-c3IlVI6hFMagWV8T .doneCritText1,#mermaid-svg-c3IlVI6hFMagWV8T .doneCritText2,#mermaid-svg-c3IlVI6hFMagWV8T .doneCritText3{fill:#000 !important}#mermaid-svg-c3IlVI6hFMagWV8T .activeCritText0,#mermaid-svg-c3IlVI6hFMagWV8T .activeCritText1,#mermaid-svg-c3IlVI6hFMagWV8T .activeCritText2,#mermaid-svg-c3IlVI6hFMagWV8T .activeCritText3{fill:#000 !important}#mermaid-svg-c3IlVI6hFMagWV8T .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c3IlVI6hFMagWV8T g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-c3IlVI6hFMagWV8T g.classGroup text .title{font-weight:bolder}#mermaid-svg-c3IlVI6hFMagWV8T g.clickable{cursor:pointer}#mermaid-svg-c3IlVI6hFMagWV8T g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-c3IlVI6hFMagWV8T g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-c3IlVI6hFMagWV8T .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-c3IlVI6hFMagWV8T .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-c3IlVI6hFMagWV8T .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-c3IlVI6hFMagWV8T .dashed-line{stroke-dasharray:3}#mermaid-svg-c3IlVI6hFMagWV8T #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-c3IlVI6hFMagWV8T #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-c3IlVI6hFMagWV8T #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-c3IlVI6hFMagWV8T #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-c3IlVI6hFMagWV8T #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-c3IlVI6hFMagWV8T #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-c3IlVI6hFMagWV8T #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-c3IlVI6hFMagWV8T #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-c3IlVI6hFMagWV8T .commit-id,#mermaid-svg-c3IlVI6hFMagWV8T .commit-msg,#mermaid-svg-c3IlVI6hFMagWV8T .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c3IlVI6hFMagWV8T .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c3IlVI6hFMagWV8T .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c3IlVI6hFMagWV8T g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c3IlVI6hFMagWV8T g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-c3IlVI6hFMagWV8T g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-c3IlVI6hFMagWV8T g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-c3IlVI6hFMagWV8T g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-c3IlVI6hFMagWV8T g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-c3IlVI6hFMagWV8T .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-c3IlVI6hFMagWV8T .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-c3IlVI6hFMagWV8T .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-c3IlVI6hFMagWV8T .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-c3IlVI6hFMagWV8T .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-c3IlVI6hFMagWV8T .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-c3IlVI6hFMagWV8T .edgeLabel text{fill:#333}#mermaid-svg-c3IlVI6hFMagWV8T .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c3IlVI6hFMagWV8T .node circle.state-start{fill:black;stroke:black}#mermaid-svg-c3IlVI6hFMagWV8T .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-c3IlVI6hFMagWV8T #statediagram-barbEnd{fill:#9370db}#mermaid-svg-c3IlVI6hFMagWV8T .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-c3IlVI6hFMagWV8T .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-c3IlVI6hFMagWV8T .statediagram-state .divider{stroke:#9370db}#mermaid-svg-c3IlVI6hFMagWV8T .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-c3IlVI6hFMagWV8T .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-c3IlVI6hFMagWV8T .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-c3IlVI6hFMagWV8T .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-c3IlVI6hFMagWV8T .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-c3IlVI6hFMagWV8T .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-c3IlVI6hFMagWV8T .note-edge{stroke-dasharray:5}#mermaid-svg-c3IlVI6hFMagWV8T .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-c3IlVI6hFMagWV8T .error-icon{fill:#522}#mermaid-svg-c3IlVI6hFMagWV8T .error-text{fill:#522;stroke:#522}#mermaid-svg-c3IlVI6hFMagWV8T .edge-thickness-normal{stroke-width:2px}#mermaid-svg-c3IlVI6hFMagWV8T .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-c3IlVI6hFMagWV8T .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-c3IlVI6hFMagWV8T .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-c3IlVI6hFMagWV8T .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-c3IlVI6hFMagWV8T .marker{fill:#333}#mermaid-svg-c3IlVI6hFMagWV8T .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;} #mermaid-svg-c3IlVI6hFMagWV8T {color: rgba(0, 0, 0, 0.75);font: ;} Slave Master SYNC请求 1 创建快照、缓冲快照生成期间的写命令 2 loop 同步快照 3 载入快照、解析快照 4 loop 缓冲快照同步期间的写命令 5 loop 同步写命令缓冲 6 载入写命令缓冲 7 loop 同步增量 8 Slave Master

1.创建文件夹,进入该文件夹

# 创建文件夹
$ mkdir -p docker/redis/#进入文件夹
$ cd docker/redis/

2.创建docker-compose.yml文件
也可直接下载我写好的docker-compose.yml文件

$ vim docker-compose.yml

docker-compose.yml内容如下:

# 撰写规范
version: '3.8'# 定义容器
services:# 名称redis_master:# 镜像名称image: redis# 容器名称container_name: redis_master# 跟随容器启动restart: always# 环境变量environment:- "TZ=Asia/Shanghai"# 端口映射 主机端口:容器端口ports:- "6379:6379"# 启动后默认执行命令# 设置密码 --requirepass 123456command:redis-server --requirepass 123456# 名称redis_slave_1:# 镜像名称image: redis# 容器名称container_name: redis_slave_1# 跟随容器启动restart: always# 环境变量environment:- "TZ=Asia/Shanghai"# 端口映射 主机端口:容器端口ports:- "6380:6379"# 启动后默认执行命令# 将当前服务器转变为指定服务器的从属服务器 --slaveof host port# 设置密码 --requirepass 123456# Master服务器密码 --masterauth 123456command:redis-server --slaveof redis_master 6379 --requirepass 123456 --masterauth 123456# 名称redis_slave_2:# 镜像名称image: redis# 容器名称container_name: redis_slave_2# 跟随容器启动restart: always# 环境变量environment:- "TZ=Asia/Shanghai"# 端口映射 主机端口:容器端口ports:- "6381:6379"# 启动后默认执行命令# 将当前服务器转变为指定服务器的从属服务器 --slaveof host port# 设置密码 --requirepass 123456# Master服务器密码 --masterauth 123456command:redis-server --slaveof redis_master 6379 --requirepass 123456 --masterauth 123456

docker-compose.yml撰写规范(version)是根据docker版本不同,而有所不同的。

$ sudo docker --version
Docker version 19.03.8, build afacb8b7f0

以下是对应关系:撰写文件版本和升级

Compose file format Docker Engine release
Compose specification 19.03.0+
3.8 19.03.0+
3.7 18.06.0+
3.6 18.02.0+
3.5 17.12.0+
3.4 17.09.0+
3.3 17.06.0+
3.2 17.04.0+
3.1 1.13.1+
3.0 1.13.0+
2.4 17.12.0+
2.3 17.06.0+
2.2 1.13.0+
2.1 1.12.0+
2.0 1.10.0+
1.0 1.9.1.+

3.docker-compose.yml启动管理的容器

$ sudo docker-compose up -d Creating network "redis_default" with the default driver
Creating redis_slave_2 ... done
Creating redis_slave_1 ... done
Creating redis_master  ... done

4.查看由docker-compose管理的容器

$ sudo docker-compose psName                   Command               State           Ports
-------------------------------------------------------------------------------
redis_master    docker-entrypoint.sh redis ...   Up      0.0.0.0:6379->6379/tcp
redis_slave_1   docker-entrypoint.sh redis ...   Up      0.0.0.0:6380->6379/tcp
redis_slave_2   docker-entrypoint.sh redis ...   Up      0.0.0.0:6381->6379/tcp

5.查看容器运行状态

$ sudo docker psCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
9af1bfa762ce        redis               "docker-entrypoint.s…"   16 seconds ago      Up 14 seconds       0.0.0.0:6379->6379/tcp   redis_master
dc9280698682        redis               "docker-entrypoint.s…"   16 seconds ago      Up 14 seconds       0.0.0.0:6380->6379/tcp   redis_slave_1
d9a9a2aa0dd3        redis               "docker-entrypoint.s…"   16 seconds ago      Up 14 seconds       0.0.0.0:6381->6379/tcp   redis_slave_2

6.进入容器redis_master,查看主从复制状态

$ sudo docker exec -it 9af1bfa762ce bashroot@9af1bfa762ce:/data# redis-cli
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=172.19.0.2,port=6379,state=online,offset=112,lag=0
slave1:ip=172.19.0.3,port=6379,state=online,offset=112,lag=0
master_replid:0031d2325bc01f3e25c6a962c1abb14655dcf3e3
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:112
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:112
127.0.0.1:6379> exit
root@9af1bfa762ce:/data# exit
exit
  • redis-cli:进入redis。
  • auth "123456":密码登录
  • info replication:查看主从复制信息。

在此处我们可以看到connected_slaves:2,这意味着有两台从机连接。slave0slave1便是两台从机的信息。

7.关闭并删除容器

$ sudo docker-compose downStopping redis_master  ... done
Stopping redis_slave_2 ... done
Stopping redis_slave_1 ... done
Removing redis_master  ... done
Removing redis_slave_2 ... done
Removing redis_slave_1 ... done
Removing network redis_default

Redis 集群-主从复制(基于Docker Compose)相关推荐

  1. Redis集群-主从复制 作者哇塞大嘴好帥(哇塞大嘴好帅)

    1.Redis集群 - 主从复制 作者:哇塞大嘴好帥(哇塞大嘴好帅) 主从复制 1.概念 讲一台Redis服务器数据复制到其他Redis服务器.被复制的服务器叫做主节点,复制被复制的服务器数据叫做从节 ...

  2. docker redis 删除集群_基于Docker的Redis集群实践

    单机版的Redis相信大家都比较熟悉了,这里介绍几种Redis的集群模式,并结合Docker来进行实践操作 abstract.png 准备工作 通过Docker下载最新的Redis镜像 # 获取red ...

  3. k8s redis集群_基于K8S部署redis哨兵集群

    本 文 主 要 内 容 什么是Kubernetes分布式容器管理平台 PaaS平台redis-sentinel集群架构简介 PaaS平台部署redis哨兵集群 redis-sentinel容器测试及验 ...

  4. Linux_基于Docker搭建Redis集群

    时间:2017年07月11日星期二 说明:基于Ubuntu16.04-64bit,开始本教程前,请确保您的Linux系统已安装Docker. 步骤一:Redis镜像安装 1.下载Redis镜像 镜像中 ...

  5. 在单机上通过docker搭建redis集群试验

    一 Redis集群搭建 1.1 运行redis镜像 [root@centos-linux docker]# docker run -id --name=redis-6379 -p 6379:6379 ...

  6. Redis集群之主从复制

    本文来说下Redis集群之主从复制 文章目录 概述 主从复制 主从同步原理 上文提到的数据不一致是怎么回事 无硬盘复制 增量复制 本文小结 概述 跟Kafka.RocketMQ.MySQL.ZooKe ...

  7. docker搭建redis集群

    #!/bin/bash #Author: 臆想的一只猫 #Created: 2022-04-06 17:42:33 #Description: 搭建redis集群function menu() {cl ...

  8. 使用docker搭建redis集群

    使用docker搭建redis集群有两种,一种是单机多个docker容器,一种是多个机器的集群 基础知识 每个Redis集群中的节点都需要打开两个TCP连接.一个连接用于正常的给Client提供服务, ...

  9. 理想化的 Redis 集群

    摘要: 豁达是正确乐观的面对失败的系统.不需要过多的担心,需要一种去说那又怎样的能力.因此架构的设计是如此的重要.许多优秀的系统没有进一步成长的能力,我们应该做的是使用其他的系统去共同分担工作. Re ...

最新文章

  1. [备忘]几种即见即所得Web编辑器优缺点比较
  2. 【10.9】multiprocessing多进程编程
  3. *.tar.bz2文件解压
  4. 一次经典的tcp三次握手
  5. php 如何获取表格数据类型,使用phpword获取doc中的表格数据
  6. python ——两个队列实现一个栈两个栈实现一个队列
  7. Coursera自动驾驶课程第7讲:Vehicle Lateral Control
  8. Java从键盘获取输入各种类型的数据方式
  9. C++ vector 容器的使用
  10. 用过的人都知道,AWT_Swing_多选框功能可是很好用啊
  11. 蓝桥杯2013c++真题:排它平方数
  12. Hive实践(hive0.12)
  13. java中的implement怎么用?
  14. 吴伯凡-认知方法论-知行合一的本质
  15. 生活杂谈-简单电器维修知识-2
  16. Hive 核心原理(hive-3.1.2)
  17. 桥接PyTorch和TVM
  18. 《绝版游戏之信长之野望12—“统一日本的游戏“》
  19. 一起来玩U3D之基础物理引擎
  20. C语言取模运算符的妙用

热门文章

  1. Java 覆盖 jar 包内的方法
  2. 超强超靓网页日历代码
  3. Intel i76700k 安装 gentoo linux
  4. 快捷实现Vivado的non-project模式
  5. 罗兰贝格:全球半导体短缺将在2022年之后持续数年
  6. 使用gensim实现lda,并计算perplexity( gensim Perplexity Estimates in LDA Model)
  7. 老上海的美味,你中意几个?
  8. 国外LEAD这样找任务最好不过
  9. 查询南京南到杭州东的二等座有票的车次
  10. 泰拉瑞亚发现服务器_steam玩家同时在线人数逼近50万,《泰拉瑞亚》凭什么好评如潮?...