REDIS主從配置

目錄

前言

一、概述

二、作用

三、缺點

四、redis主從復制的流程

五、搭建redis主從復制

總結



前言

Redis的主從配置是指在Redis集群中,將一個Redis節點配置為主節點(master),其他節點配置為從節點(slave),主節點負責寫操作和部分讀操作,從節點負責讀操作。
主從配置的作用主要有以下幾點:


提高讀寫性能:主節點負責寫操作,從節點負責讀操作,實現了讀寫分離,有效提高了系統的讀寫性能。從節點可以接受主節點的復制數據,這樣讀操作可以在從節點上執行,減輕了主節點的負載。


提高可用性:主節點故障時,從節點可以接替主節點的角色,繼續提供服務。當主節點恢復后,可以重新加入集群,重新成為從節點,保證了系統的高可用性。


數據備份:從節點通過復制主節點的數據,實現了數據的備份。當主節點故障時,從節點可以提供最新的數據,避免數據丟失。


故障恢復:當主節點故障時,可以通過從節點快速恢復主節點的數據。從節點會自動發現并選舉一個新的主節點,保證系統的正常運行。


擴展性:通過增加從節點,可以提高系統的讀取性能和容量。當系統需求增加時,可以通過增加從節點來擴展系統的處理能力。


總的來說,主從配置可以提高Redis集群的性能、可用性和擴展性,保證數據的備份和故障恢復。
?


一、概述

redis主從復制是指將一臺Redis服務器的數據,復制到其他的Redis服務器。前者稱為主節點(Master),后者稱為從節點(Slave);數據的復制是單向的,只能由主節點到從節點。

二、作用

數據冗余:主從復制實現了數據的熱備份,是持久化之外的一種數據冗余方式。

故障恢復:當主節點出現問題時,可以由從節點提供服務,實現快速的故障恢復;實際上是一種服務的冗余。

負載均衡:在主從復制的基礎上,配合讀寫分離,可以由主節點提供寫服務,由從節點提供讀服務(即寫Redis數據時應用連接主節點,讀Redis數據時應用連接從節點),分擔服務器負載;尤其是在寫少讀多的場景下,通過多個從節點分擔讀負載,可以大大提高Redis服務器的并發量。

高可用:除了上述作用以外,主從復制還是哨兵和集群能夠實施的基礎,因此說主從復制是Redis高可用的基礎。

三、缺點

故障恢復無法自動化;

寫操作無法負載均衡;

存儲能力受到單機的限制。

四、redis主從復制的流程

第一步:若啟動一個Slave機器進程,則它會向Master機器發送一個“sync command”命令,請求同步接。

第二步:無論是第一次連接還是重新連接,Master機器都會啟動一個后臺進程,將數據快照保存到數據文件中(執行rdb操作),同時Master還會記錄修改數據的所有命令并緩存在數據文件中。?

第三步:后臺進程完成緩存操作之后,Maste機器就會向Slave機器發送數據文件,Slave端機器將數據文件保存到硬盤上,然后將其加載到內存中,接著Master機器就會將修改數據的所有操作一并發送給Slave端機器。若Slave出現故障導致宕機,則恢復正常后會自動重新連接。

第四步:Master機器收到Slave端機器的連接后,將其完整的數據文件發送給Slave端機器,如果Mater同時收到多個Slave發來的同步請求,則Master會在后臺啟動一個進程以保存數據文件,然后將其發送給所有的Slave端機器,確保所有的Slave端機器都正常。

五、搭建redis主從復制

我們搭建一主三從的模式

1.在主服務上的操作

修改配置文件vim /etc/redis.conf

設置監聽地址

關閉保護模塊

設置允許后臺運行

重啟服務,查看端口

[root@localhost ~]# vim /etc/redis.conf 
[root@localhost ~]# systemctl restart redis
[root@localhost ~]# netstat -anput |grep redis
tcp        0      0 192.168.73.10:6379      0.0.0.0:*               LISTEN      12833/redis-server  
[root@localhost ~]# 

2.在從上的操作

將 配置文件redis.conf 拷貝,并以端口號命令例如

[root@localhost etc]# cp redis.conf /opt/redis_6380.conf
[root@localhost etc]# cp redis.conf /opt/redis_6381.conf
[root@localhost etc]# cp redis.conf /opt/redis_6382.conf
[root@localhost etc]# 

分別編輯他們需要修改的內容

修改配置文件
?? ?bind ?0.0.0.0
?? ?port? 不同的端口號
?? ?protected-mode = no
?? ?daemonize = yes
?? ?slaveof 主的IP 主的端口

編輯完成之將主從全部啟動,并驗證

[root@localhost etc]# cp redis.conf /opt/redis_6380.conf
[root@localhost etc]# cp redis.conf /opt/redis_6381.conf
[root@localhost etc]# cp redis.conf /opt/redis_6382.conf
[root@localhost etc]# vim /opt/redis_6380.conf 
[root@localhost etc]# vim /opt/redis_6381.conf 
[root@localhost etc]# vim /opt/redis_6382.conf 
[root@localhost etc]# redis-server /opt/redis_6380.conf 
[root@localhost etc]# redis-server /opt/redis_6381.conf 
[root@localhost etc]# redis-server /opt/redis_6382.conf 
[root@localhost etc]# netstat -anput |grep redis
tcp        0      0 192.168.73.10:6379      0.0.0.0:*               LISTEN      12833/redis-server  
tcp        0      0 0.0.0.0:6380            0.0.0.0:*               LISTEN      13699/redis-server  
tcp        0      0 0.0.0.0:6381            0.0.0.0:*               LISTEN      13711/redis-server  
tcp        0      0 0.0.0.0:6382            0.0.0.0:*               LISTEN      13723/redis-server  
tcp        0      0 192.168.73.10:37065     192.168.73.10:6379      ESTABLISHED 13723/redis-server  
tcp        0      0 192.168.73.10:34195     192.168.73.10:6379      ESTABLISHED 13699/redis-server  
tcp        0      0 192.168.73.10:6379      192.168.73.10:37065     ESTABLISHED 12833/redis-server  
tcp        0      0 192.168.73.10:6379      192.168.73.10:34195     ESTABLISHED 12833/redis-server  
tcp        0      0 192.168.73.10:46341     192.168.73.10:6379      ESTABLISHED 13711/redis-server  
tcp        0      0 192.168.73.10:6379      192.168.73.10:46341     ESTABLISHED 12833/redis-server  
[root@localhost etc]# 

3、驗證

使用redis-cli命令行登錄redis服務器,輸入role指令查看狀態

[root@localhost etc]# redis-cli -h 192.168.73.10 -p 6379
192.168.73.10:6379> role
1) "master"
2) (integer) 435
3) 1) 1) "192.168.73.10"2) "6380"3) "435"2) 1) "192.168.73.10"2) "6381"3) "435"3) 1) "192.168.73.10"2) "6382"3) "435"
192.168.73.10:6379> 

在master節點上,錄入數據,在slave節點上查看到對應數據即可

master錄入

192.168.73.10:6379> set hy hy
OK
192.168.73.10:6379> get hy
"hy"
192.168.73.10:6379> 

slave查看

[root@localhost etc]# redis-cli -h 192.168.73.10 -p 6380
192.168.73.10:6380> get hy
"hy"
192.168.73.10:6380> exit
[root@localhost etc]# redis-cli -h 192.168.73.10 -p 6381
192.168.73.10:6381> get hy
"hy"
192.168.73.10:6381> exit
[root@localhost etc]# redis-cli -h 192.168.73.10 -p 6382
192.168.73.10:6382> get hy
"hy"
192.168.73.10:6382> 

驗證成功


總結

在配置主從復制上大家要注意的是配置項的修改

master服務器需要改的地方:

bind? 監聽地址
port? 端口
protected-mode = no
daemonize = yes

slave需要修改的是

bind? 監聽地址
port ?6380
protected-mode = no
daemonize = yes
slaveof 192.168.115.160 6379

并且需要注意去監聽端口。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/35284.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/35284.shtml
英文地址,請注明出處:http://en.pswp.cn/news/35284.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【數據結構?堆】堆排序(理論基礎)

堆的定義  ? 堆是一個完全二叉樹   –所有葉子在同一層或者兩個連續層   –最后一層的結點占據盡量左的位置  ? 堆性質   –為空, 或者最小元素在根上   –兩棵子樹也是堆 存儲方式  ? 最小堆的元素保存在heap[1..hs]內   – 根在heap[1]   –K的左兒子是2k,…

細胞——求細胞數量 C++詳解

細胞——求細胞數量 C詳解 求細胞數量題目描述輸入格式輸出格式樣例樣例輸入樣例輸出 提示數據規模與約定 解法代碼 求細胞數量 題目描述 一矩形陣列由數字 0 0 0 到 9 9 9 組成,數字 1 1 1 到 9 9 9 代表細胞,細胞的定義為沿細胞數字上下左右若還…

vue3中使用component動態組件常見問題

一. 在vue3中使用動態組件問題警告處理 1. 代碼如下 <template><div v-for"(item, index) in navItems" :key"index"><component :is"item.component" :key"item.gameId"></component></div> </te…

nbcio-boot升級springboot、mybatis-plus和JSQLParser后的LocalDateTime日期json問題

升級后&#xff0c;運行顯示項目的時候出現下面錯誤 2023-08-12 10:57:39.174 [http-nio-8080-exec-3] [1;31mERROR[0;39m [36morg.jeecg.common.aspect.DictAspect:104[0;39m - json解析失敗Java 8 date/time type java.time.LocalDateTime not supported by default: add Mo…

Leetcode-每日一題【劍指 Offer 26. 樹的子結構】

題目 輸入兩棵二叉樹A和B&#xff0c;判斷B是不是A的子結構。(約定空樹不是任意一個樹的子結構) B是A的子結構&#xff0c; 即 A中有出現和B相同的結構和節點值。 例如: 給定的樹 A: 3 / \ 4 5 / \ 1 2 給定的樹 B&#xff1a; 4 / 1 返回 true&#xff0…

ffmpeg ts列表合并為mp4

操作系統&#xff1a;ubuntu 注意事項&#xff1a; 1.ts文件順序必須正確&#xff0c;也就是下一幀的dst和pst要比上一幀的大&#xff0c;否則會報錯 2.codecpar->codec_tag要設置為0&#xff0c;否則報錯Tag [27][0][0][0] incompatible with output codec id ‘27’ (avc1…

docker版jxTMS使用指南:使用jxTMS采集數據之二

本文是如何用jxTMS進行數據采集的第二部分&#xff0c;整個系列的文章請查看&#xff1a;docker版jxTMS使用指南&#xff1a;4.4版升級內容 docker版本的使用&#xff0c;請查看&#xff1a;docker版jxTMS使用指南 4.0版jxTMS的說明&#xff0c;請查看&#xff1a;4.0版升級內…

Vue + MapBox快速搭建

一、說明&#xff1a; 1.mapbox-gl自2.0版本開始不再開源&#xff0c;需要用戶在官網申請key使用。 2.maplibre GL JS是一個開源庫&#xff0c;它起源于 mapbox-gl-js 的開源分支。該庫的初始版本&#xff08;1.x&#xff09;旨在替代Mapbox的OSS版本。簡單來說maplibre是mapb…

異步場景加載詳解

異步場景加載詳解 介紹 異步場景加載是一種在Unity中加載場景的方式&#xff0c;它允許在加載過程中執行其他操作&#xff0c;并提供了加載進度的反饋。通過異步加載&#xff0c;可以避免加載大型場景時的卡頓現象&#xff0c;提高游戲的流暢性和用戶體驗。 方法 在Unity中…

C++——缺省參數

缺省參數的定義 缺省參數是聲明或定義函數時為函數的參數指定一個缺省值。在調用該函數的時候&#xff0c;如果沒有指定實參&#xff0c;則采用該形參的缺省值&#xff0c;否則使用指定的實參。 void Func(int a 0) {cout << a << endl; } int main() { Func()…

【Kubernetes】Kubernetes之Pod詳解

Pod 一、 Pod1. Pod 基礎概念2. 在 Kubrenetes 集群中 Pod 使用方式2.1 pasue 容器2.2 kubernetes 中的 pause 容器提供的功能 3. Pod 的概念和結構組成4. Pod 的分類5. Pod 容器的分類5.1 基礎容器&#xff08;infrastructure container&#xff09;5.2 初始化容器&#xff08…

07 |「異步任務」

前言 實踐是最好的學習方式&#xff0c;技術也如此。 文章目錄 前言一、進程與線程1、進程2、線程 二、實現三、異步任務加載器 一、進程與線程 1、進程 進程(Process)是操作系統分配資源的基本單位,它是一個執行中的程序實例&#xff1b;每個進程都有自己獨立的內存空間,不同…

【大數據】Flink 詳解(二):核心篇 Ⅲ

Flink 詳解&#xff08;二&#xff09;&#xff1a;核心篇 Ⅲ 29、Flink 通過什么實現可靠的容錯機制&#xff1f; Flink 使用 輕量級分布式快照&#xff0c;設計檢查點&#xff08;checkpoint&#xff09;實現可靠容錯。 30、什么是 Checkpoin 檢查點&#xff1f; Checkpoint …

百度 amis 當成 UI 庫用

百度 amis 當成 UI 庫用 1.獲取到這些 amis 對外提供的方法 var amisLib amisRequire(amis);// 獲取到這些 amis 對外提供的方法。 2.js中使用百度amis中 confirm var name"name";amisLib.confirm(請確認刪除 name !,"刪除").then((confirmed) > {if…

如何進行游戲平臺搭建?

游戲平臺搭建涉及多個步驟和技術&#xff0c;下面是一個大致的指南&#xff1a; 市場調研和定位&#xff1a;首先&#xff0c;要了解游戲市場和受眾的需求&#xff0c;選擇適合的游戲類型和定位。 選擇平臺類型&#xff1a;決定是要搭建網頁平臺、移動應用平臺還是其他類型的…

群暉6.X便捷的安裝cpolar內網穿透

群暉6.X便捷的安裝cpolar內網穿透 文章目錄 群暉6.X便捷的安裝cpolar內網穿透前言1. 下載cpolar的群暉套件1.1 打開群暉套件中心1.2 選擇“手動安裝”1.3 選擇下載cpolar套件位置 2. 打開cpolar的Web-UI界面3. 注冊會員 前言 隨著硬件設備和軟件技術的發展&#xff0c;以及數據…

概率圖模型(Probabilistic Graphical Model,PGM)

概率圖模型&#xff08;Probabilistic Graphical Model&#xff0c;PGM&#xff09;&#xff0c;是一種用圖結構來描述多元隨機變量之間條件獨立性的概率模型。它可以用來表示復雜的概率分布&#xff0c;進行有效的推理和學習&#xff0c;以及解決各種實際問題&#xff0c;如圖…

Redis小例子

MAC電腦下Redis的安裝&#xff1a; brew install redis下面給一個Java操作redis的小例子 import redis.clients.jedis.Jedis;public class Demo {public static void main(String[] args) {// 創建 Jedis 客戶端實例&#xff0c;連接到本地 Redis 服務器&#xff0c;默認端口…

RedisDesktopManage

RDM 簡介下載安裝 簡介 RedisDesktopManager&#xff08;RDM&#xff09;是一個開源的跨平臺圖形界面工具&#xff0c;用于管理和操作 Redis 數據庫。它提供了一個用戶友好的界面&#xff0c;使用戶能夠輕松地連接、瀏覽、查詢和修改 Redis 數據&#xff0c;而無需使用命令行界…

教你10分鐘內學習如何CSS 設置網頁打印時的樣式

本文將教您開始為要打印的頁面編寫CSS所需要的一切提供幫助。 media 規則 If you’ve done any responsive design, you’ll already know about the media rule. As well as different screen sizes, media also lets you target “print” media. Here’s an example: 如果…