向爬蟲而生---Redis 探究篇4<Redis主從復制(1)>

前言:

當涉及到Redis的高可用性和數據冗余時,主從復制是一個非常重要的概念。

在現代應用程序的開發中,數據的可靠性和高可用性是至關重要的當涉及到數據冗余和故障恢復時,Redis主從復制成為一個必不可少的工具和技術。Redis主從復制是一種強大而靈活的架構設計,可以為分布式系統提供一系列優勢和解決方案

理解Redis主從復制的重要性和優勢,了解如何應用它來提高系統的可靠性和數據冗余。它對于構建現代化的高可用系統具有重要的作用!

正文:

基本原理

主從復制架構的工作原理

Redis主從復制采用了一種異步復制的方式,基于主節點(Master)將數據復制到一個或多個從節點(Slave)的思想

  • 主節點是數據的源頭,負責處理客戶端的寫操作
  • 從節點則復制主節點上的數據,并可以處理客戶端的讀操作

主從復制的工作原理如下:當主節點接收到寫操作時,它將該操作記錄在自己的命令日志中,并通過網絡將該命令發送給所有從節點。從節點接收到命令后,執行相同的操作,將數據同步到自己的數據集中。這樣,主節點和從節點的數據保持一致。

主節點(Master)和從節點(Slave)之間的關系

在主從復制架構中,主節點和從節點之間建立了一種特殊的關系。主節點可像平常一樣與客戶端進行讀寫交互,而從節點主要用于讀操作。即使主節點宕機,從節點仍可以順利繼續提供讀服務

從節點的數據完全復制自主節點的數據,因此它們之間是存在一定延遲的。但是,主節點會實時將寫操作發送給從節點,并追趕主節點的進度。這種異步復制的機制確保了數據的最終一致性。

復制過程中的數據同步和傳播機制

復制過程中的數據同步和傳播機制包括以下步驟:

  1. 主節點將寫操作記錄在命令日志中(AOF日志或RDB文件)。
  2. 主節點將記錄的命令發送到所有從節點。
  3. 從節點接收到命令后,在自己的數據集中執行相同的操作。
  4. 從節點將執行結果反饋給主節點,并廣播給其他從節點。
  5. 其他從節點接收到廣播后,更新自己的數據集。

案例情境:

考慮一個電子商務網站,主節點實時記錄商品的庫存和銷售數據。從節點能夠及時復制主節點的數據,并用于展示給用戶。如果主節點處理一次銷售操作,將其記錄在命令日志中,它會將相同的操作發送給多個從節點。從節點會按照主節點的順序執行相同的操作,確保所有節點上的數據始終保持一致。

例如,當主節點記錄一次庫存減少的操作時,它會將相同的操作發送給所有從節點。從節點接收到該操作后,同樣將庫存減少并更新自己的數據集。這樣,主節點和從節點之間的數據保持同步,并能提供準確的庫存信息給用戶。

通過這個案例,可以更好地理解Redis主從復制架構的工作原理和數據同步機制,以及主節點和從節點之間的關系。這種復制機制確保了數據的高可用性和一致性,使得Redis主從復制在構建可靠的分布式系統中扮演著重要的角色。

配置和設置

如何配置Redis主從復制

步驟:
  1. 配置主節點:打開主節點的配置文件,通常為redis.conf。確保以下配置項正確設置:

    • 設置bind配置為主節點的IP地址。
    • 設置port配置為主節點的監聽端口。
    • 啟用持久化機制,可以選擇使用AOF(Append Only File)或RDB(Redis Database)方式記錄命令日志。
    • 若要允許從節點進行連接,并進行數據復制,將slave-read-only配置項設置為no
  2. 配置從節點:打開從節點的配置文件,同樣是redis.conf。確保以下配置項正確設置:

    • 設置bind配置為從節點的IP地址。
    • 設置port配置為從節點的監聽端口。
    • 配置replicaof指令為主節點的IP地址和端口,將從節點設置為指定主節點的從節點。
  3. 啟動Redis服務器:先啟動主節點,然后啟動從節點。

    • 啟動主節點:在命令行中運行 redis-server /path/to/redis.conf
    • 啟動從節點:在命令行中運行 redis-server /path/to/redis.conf

主節點和從節點都需要配置一個獨立的Redis配置文件

主節點的配置文件(redis.conf):
# 綁定的IP地址和端口號
bind 127.0.0.1
port 6379# 啟用持久化機制
appendonly yes
# 或者
save 900 1
save 300 10
save 60 10000# 允許從節點連接并進行數據復制
slave-read-only no# 主節點的密碼(可選)
requirepass YourPassword# 主節點的名稱(可選)
# 設置一個唯一的名稱以便在主從復制中進行識別
# 若未設置,則默認為隨機生成的40個字符的字符串
# 可以使用命令 CONFIG SET masterauth YourPassword 來設置主節點的密碼
# 從節點連接主節點時需要提供密碼
# masterauth YourPassword
從節點的配置文件(redis.conf):
# 綁定的IP地址和端口號
bind 127.0.0.1
port 6380# 設置為從節點并指定主節點的IP地址和端口號
replicaof 127.0.0.1 6379# 從節點的密碼(可選,與主節點密碼相同)
masterauth YourPassword

根據實際情況進行修改。比如,將bindport配置為正確的IP地址和端口號,以及適當配置appendonlysave選項來啟用持久化。

在實際部署中,可以根據具體需求和實際環境來調整其他配置項,如內存限制、日志記錄等。確保主節點和從節點的配置文件中相應的配置項保持一致,并使用正確的設置可以確保主從復制的正常運行。

復制過程中的身份驗證和安全性設置


在Redis主從復制中,數據的傳輸和復制過程中可以通過設置身份驗證和安全性措施來保護數據的安全。

在Redis主從復制中,可以通過以下方式來設置身份驗證和安全性保護:

1.使用密碼進行身份驗證:

可以在主節點和從節點的配置文件中設置一個密碼,以限制對Redis實例的訪問。在配置文件中,使用requirepass選項來設置主節點密碼,使用masterauth選項來設置從節點連接主節點所需的密碼。

例如,在主節點的配置文件中設置密碼:

requirepass YourPassword

在從節點的配置文件中設置密碼:

masterauth YourPassword

通過設置密碼,只有提供了正確密碼的節點才能連接到主節點或復制數據。

2.啟用SSL加密傳輸:

為了保護數據在傳輸過程中的安全性,可以啟用SSL(Secure Sockets Layer)加密功能。通過配置Redis實例使用SSL證書,可以確保數據在傳輸過程中是安全的。

要啟用SSL加密傳輸,需要準備SSL證書,并在配置文件中設置以下選項:

sslenabled yes
sslcert /path/to/cert.crt
sslkey /path/to/private.key

在啟用SSL加密后,Redis實例之間的通信將會被加密,提供更高的安全性。

3.配置防火墻規則:

為了進一步加強數據的安全性,可以通過配置防火墻規則來限制對Redis實例的訪問。只允許受信任的IP地址或網絡訪問Redis服務器,可以減少潛在的攻擊風險。

根據不同的操作系統和防火墻軟件,具體的配置方法可能會有所不同。一般來說,可以通過操作系統的防火墻工具,如iptables、ufw等,在主節點和從節點上配置允許訪問的IP地址或網絡段。

例如,使用iptables配置允許特定IP地址訪問Redis:

iptables -A INPUT -s <trusted-ip> -p tcp --dport <redis-port> -j ACCEPT

通過配置防火墻規則,只有被允許的IP地址才能連接到Redis服務器。

通過設置密碼進行身份驗證、啟用SSL加密傳輸和配置防火墻規則等措施,可以增加Redis主從復制過程中數據的安全性,并保護數據不易被未授權的訪問和攻擊。同時,還建議定期更新密碼和SSL證書,并密切關注安全漏洞和更新,以保持系統的安全性。

案例:

示例情境: 考慮一個銀行應用程序,主節點存儲用戶的交易記錄,而從節點用于生成報告和數據分析。為了確保數據的安全性,您可以在主節點和從節點的配置文件中進行身份驗證設置。

在主節點的配置文件中,您可以使用requirepass指令設置一個密碼,以限制對主節點的訪問。在從節點的配置文件中,您可以使用masterauth指令設置一個與主節點密碼相符的密碼,以確保從節點只能連接到正確的主節點。

----------可以看到在Redis主從復制架構中,通過適當的配置和設置,可以確保數據的安全性和正確的復制。這種安全性措施保護了敏感數據的傳輸和復制,確保只有具有正確身份驗證和權限的節點才可以訪問和進行復制操作。

  1. 配置主節點:
    • daemonize:設置Redis以守護進程方式運行,即在后臺運行Redis服務器。
    • appendonly:啟用AOF模式,將寫操作以日志的形式追加到硬盤上的AOF文件中。
    • appendfilename:定義AOF文件的名稱。
    • appendfsync:設置AOF文件的同步策略,可以選擇always、everysec或no。
    • save:配置RDB持久化的規則,設置保存數據庫快照的條件(如多長時間內有多少次寫操作)。
  2. 配置從節點:
    • bind:指定從節點的IP地址,用于監聽和接收連接。
    • port:指定從節點的監聽端口。
    • daemonize:設置Redis以守護進程方式運行。
    • replicaof:指定主節點的IP地址和端口,將當前節點設置為指定主節點的從節點進行復制。
  3. 身份驗證:

    • masterauth:在主節點配置文件中設置用于從節點連接的密碼。
    • requirepass:在從節點配置文件中設置用于主節點連接的密碼。
  4. 安全性設置:

    • requirepass:設置用于連接Redis服務器的密碼,以保護訪問服務器的權限。
    • masterauth:設置主節點進行連接的密碼,以防止未經授權的復制。

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

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

相關文章

藍橋杯-單片機組基礎5——外部中斷與LED的控制(附小蜜蜂課程代碼)

藍橋杯單片機組備賽指南請查看這篇文章&#xff1a;戳此跳轉藍橋杯備賽指南文章 本文章針對藍橋杯-單片機組比賽開發板所寫&#xff0c;代碼可直接在比賽開發板上使用。 型號&#xff1a;國信天長4T開發板&#xff08;綠板&#xff09;&#xff0c;芯片&#xff1a;IAP15F2K6…

自學軟件測試怎么學?

軟件測試是一個變得越來越受歡迎的行業&#xff0c;在IT行業里面&#xff0c;也是初學比較容易的。但對小白而言&#xff0c;怎樣學習才能做到快速入門&#xff0c;少走彎路呢&#xff1f; 步驟一&#xff1a;初學學軟件測試&#xff0c;要先搞懂這種問題 要想進入到軟件測試…

Android Duplicate class 排除重復類

一、起因&#xff1a; 在迭代開發的時候&#xff0c;發現2個ijk很多類重復。但又2個庫實現的功能是不一樣&#xff0c;目前不能合并。但又想保留2個功能。需要排除其中一個庫。 二、報錯如何下圖&#xff1a; 三、解決方法&#xff1a; 3.1 在terminal 也就是命令行處輸入 …

Golang 并發機制 CSP模型

Golang 并發機制 CSP模型 1 前言 go語言的最大兩個亮點&#xff0c;一個是 goroutine &#xff0c;一個就是 chan 了。二者合體的典型應用CSP&#xff0c;基本就是大家認可的并行開發神器&#xff0c;簡化了并行程序的開發難度&#xff0c;我們來看一下CSP。 2 CSP是什么 C…

在Windows 11中運行磁盤清理工具的9種方法,總有一種適合你

自Windows98以來,微軟在操作系統中包含了一個內置的清理工具。當用戶轉向第三方清理應用程序時,這個值得信賴的實用程序站穩了腳跟。微軟甚至宣布,第三方應用程序幾乎毫無用處,刪除注冊表項不是一個好主意。 磁盤清理工具可以幫助刪除臨時文件、舊的更新日志、縮略圖緩存和…

git安裝與使用4.3

一、git的安裝 1、下載git包 下載git包url&#xff1a;https://git-scm.com/download/win 下載包分為&#xff1a;64位和32位 2、點擊安裝包 2、選擇安裝路徑 3、 點擊下一步 4、點擊next 5、點擊next 6、點擊next 7、 8、 9、 10、 11、 12、在桌面空白處&#xff0c;右鍵…

【SpringBoot】測試單元使用多線程

&#x1f4dd;個人主頁&#xff1a;五敷有你 &#x1f525;系列專欄&#xff1a;SpringBoot ??穩重求進&#xff0c;曬太陽 問題產生 今天學習了樂觀鎖&#xff0c;但在測試單元執行多線程的時候出現了問題&#xff0c;多線程并沒有直接結果 在控制臺沒有任何輸出…

KubeSphere平臺安裝系列之二【Linux單節點部署KubeSphere】(2/3)

**《KubeSphere平臺安裝系列》** 【Kubernetes上安裝KubeSphere&#xff08;親測–實操完整版&#xff09;】&#xff08;1/3&#xff09; 【Linux單節點部署KubeSphere】&#xff08;2/3&#xff09; 【Linux多節點部署KubeSphere】&#xff08;3/3&#xff09; **《KubeS…

RocketMQ學習筆記一

課程來源&#xff1a;002-MQ簡介_嗶哩嗶哩_bilibili &#xff08;尚硅谷老雷&#xff0c;時長19h&#xff09; 第1章 RocketMQ概述 1. MQ是什么&#xff1f; 2. MQ用途有哪些&#xff1f; 限流削峰&#xff1b;異步解耦&#xff1b;數據收集。 3. 常見MQ產品有哪些&對比…

Kaggle競賽之Titanic存活預測2

提高代碼規范性&#xff0c;基于上一個 baseline 的提高 import pandas as pd from sklearn.preprocessing import LabelBinarizer from sklearn.preprocessing import StandardScaler from sklearn.model_selection import train_test_split#數據劃分方法 from sklearn.ensem…

哪個超聲波清洗機品牌值得入手?銷量榜品牌值得選購!

在科技日益發展的今天&#xff0c;超聲波清洗技術以其高效、便捷和深度清潔的特點&#xff0c;已經深入到生活的諸多領域&#xff0c;從精密儀器到珠寶首飾&#xff0c;從眼鏡框到假牙&#xff0c;甚至是廚房用品的日常護理&#xff0c;都能見到超聲波清洗機的身影。面對市場上…

無人機兩次飛行的圖像數據配準與幾何校正方法研究

標題: 無人機兩次飛行的圖像數據配準與幾何校正方法研究 摘要: 本文研究了利用無人機獲取的兩次飛行的圖像數據進行配準與幾何校正的方法。無人機航拍技術在地理信息獲取和空間數據應用中具有重要意義,但由于飛行條件、攝影設備和環境等因素的影響,同一區域的不同飛行任務…

【基頻提取算法-YIN】

本文對基頻提取算法 YIN 做以介紹。如有表述不當之處歡迎批評指正。歡迎任何形式的轉載&#xff0c;但請務必注明出處。 文章目錄 1. 引言2. YIN 各模塊代碼講解2.1. 差分函數的實現2.2. 累積均值歸一化差分函數的實現2.3. 絕對閾值2.4. 拋物線插值2.5. 最優局部估計 3. 總結 1…

免殺實戰-EDR對抗

文章目錄 殺軟分析BOF.NET 殺軟分析 x64dgb簡單調試發現該edr在r3環對ntdll.dll和kernel32.dll關鍵函數均存在hook&#xff0c;這里硬盤讀取原來的dll進行重新加載&#xff0c;原理如圖 loader // dllmain.cpp : 定義 DLL 應用程序的入口點。 #include "pch.h" #in…

DSI2協議之BTA行為理解

概念: DSI協議spec支持總線控制權在master和slave之間發生交換,即通過bus turn around來實現; BUS TURN AROUND: BTA 的實現是通過controller—>cdphy的turnrequest信號來實現; 關于控制器發出turnrequest給phy,phy通過lvds/trio線輸出turnaround sequence如下圖中…

LeetCode刷題筆記之二叉樹(四)

一、二叉搜索樹的應用 1. 700【二叉搜索樹中的搜索】 題目&#xff1a; 給定二叉搜索樹&#xff08;BST&#xff09;的根節點 root 和一個整數值 val。你需要在 BST 中找到節點值等于 val 的節點。 返回以該節點為根的子樹。 如果節點不存在&#xff0c;則返回 null 。代碼&a…

BUGKU 本地管理員

打開環境&#xff0c;先F12查看看到一串代碼。Base64解碼一下&#xff0c;得到的應該是密碼&#xff0c;然后輸入admin | test123試一下 使用BP抓包&#xff0c;修改XFF&#xff0c;得到flag

將鏡像上傳到私有鏡像倉庫Harbor

首先你需要安裝Harbor服務&#xff1a; https://blog.csdn.net/qq_50247813/article/details/136388229 客戶端已經安裝docker&#xff1a; https://docs.docker.com/engine/install/centos/ 在docker客戶端登錄 Harbor 我的Harbor 服務器地址&#xff1a; 192.168.44.161 賬號…

關于編寫測試用例的一些思考

測試用例是QA同學的基本功&#xff0c;每個人都有一套編寫測試用例的體系&#xff0c;本文是作者結合自身的工作經驗以及閱讀一些測試相關的書籍后的一些看法&#xff0c;歡迎大家一起討論學習。 測試設計 測試用例格式 面試中一些常見的問題 1.APP測試與服務端測試的區別&am…

微服務中的Feign:優雅實現遠程調用的秘密武器(二)

本系列文章簡介&#xff1a; 本系列文章將深入探討Feign的特點、原理以及在微服務中的應用場景&#xff0c;幫助讀者更好地理解和使用這個優秀的遠程調用工具。無論您是初學者還是有經驗的開發人員&#xff0c;本文都將為您揭示Feign的秘密&#xff0c;并帶您一起走進微服務的世…