Redis6.2集群部署

来源:https://www.cnblogs.com/SwordITC/archive/2022/10/17/16794169.html
-Advertisement-
Play Games

複製集群 &.主從模式 (讀寫分離) 主從模式原理 集群運作原理 Redis主從複製預設讀寫分離(主寫從讀). 單點故障時,預設的容災機制可以實現快速故障恢復(單點/多點故障). 主從集群說明 (優點) 易擴展 (可以動態的添加增加從機) (優點) 讀寫分離 (主寫從讀) (缺點) 複製延遲 (寫操 ...



複製集群

&.主從模式 (讀寫分離)

主從模式原理

集群運作原理
    Redis主從複製預設讀寫分離(主寫從讀). 單點故障時,預設的容災機制可以實現快速故障恢復(單點/多點故障).

主從集群說明
(優點) 易擴展 (可以動態的添加增加從機)
(優點) 讀寫分離 (主寫從讀)
(缺點) 複製延遲 (寫操作均由主機完成,從機過多數據同步慢)
(缺點) 可用性差 (主機故障需手動選舉新主機,此間寫操作異常)

(1) 準備集群主機: 安裝配置n台Redis伺服器(n>=1),配置方式參考Redis6.2安裝配置.

(2) 搭建主從集群: 從n台Redis主機中任選n-1台作為從機. 逐個連接從機,對從機進行主從關係配置(如下).

slaveof <master_ip> <master_port>   # 將當前Redis主機配置為指定Redis主機的從機.
info replication                    # 查看當前Redis主機的信息(role值從master改為slave即成功)

[多級從機] 除以上配置外,還可以為從機配置從機 (在從機的從機上通過slaveof <slave_ip> <slave_port>命令配置).
[切換主機] 在主機故障時,也可以手動將指定從機提升為集群的主機 (在指定從機上通過執行slaveof no one命令進行切換).

&.哨兵模式 (+高可用)

哨兵模式原理

集群運作原理
    Redis哨兵模式中,哨兵主機會監控主從集群中的主機和所有從機,當主機故障時,哨兵主機會根據選舉規則自動選舉新主機. 當原主機故障重連後,則以從機身份重新接入集群.

哨兵集群說明
(優點) 易擴展 (可以動態的添加增加從機)
(優點) 高可用 (主機故障時,會選舉新主機來保證讀寫正常)
(缺點) 複製延遲 (寫操作均由主機完成,從機過多數據同步慢)

(1) 配置主從集群: 安裝配置n台Redis伺服器,並建立出主從關係.

(2) 配置哨兵主機: 為Redis主從集群添加哨兵伺服器(最少1台),用於對主從關係進行監控和自動切換.

# sentinel.conf文件中寫入如下內容,其中1為至少有多少個哨兵同意遷移的數量
sentinel monitor <master_name> <master_ip> <master_port> 1

(3) 啟動哨兵主機: 啟動方式如下,啟動後介面連接哨兵集群,連接入口為主機和從機 (同主從集群).

redis-sentinel /etc/redis/sentinel.conf    # 啟動哨兵伺服器

分片集群 (+負載均衡)


分片集群原理

集群運作原理
    Redis分片集群中,數據會根據slot分片存儲到不同的複製集群中(每組複製集群存儲總數據的1/n,n為複製集群數量).

分片集群說明
(優點) 易擴展 (無中心化,配置相對簡單)
(優點) 高可用 (複製集群故障僅導致部分數據不可用)
(優點) 高負載 (讀寫分離、分片存儲等特性實現負載均衡)
(缺點) 不支持lua腳本
(缺點) 不支持多鍵操作和多鍵的Redis事務

(1) 準備集群主機: 安裝配置n台Redis主機(n>=3),在每台主機的redis.conf中都啟用如下配置,然後啟動.

# 啟用集群模式
cluster-enabled yes
# 設置節點的配置文件名
cluster-config-file nodes-6379.conf
# 設置節點的超時時間 (毫秒),超時自動進行主從選舉
cluster-node-timeout 15000
# 關閉集群全覆蓋,開啟時有一個slot的主從全故障則集群整體故障 (關閉時僅故障slot不可用)
cluster-require-full-coverage no

(2) 搭建分片集群: 從n台Redis主機中任選一臺輸入如下指令,引導工具會自動生成架構方案,選yes進行配置即可.

# 將集群中所有主機的ip和埠都通過該命令進行指定(本例中為n台),
# @<number> 集群中每個主節點對應幾個從節點.
# @<ip:port> ip必須為Redis主機的真實ip,不能是本地迴環地址.
redis-cli --cluster create --cluster-replicas <number> <ip:port> [<ip:port> ...]

(3) 集群連接測試: 連接集群中的任意一臺主機(去中心化,任意主機都可作為集群連接入口).

cluster nodes      # 查看分片集群中所有節點的信息

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • nginx反向代理與負載均衡 nginx通常被用作後端伺服器的反向代理,這樣就可以很方便的實現動靜分離以及負載均衡,從而大大提高伺服器的處理能力。 nginx實現動靜分離,其實就是在反向代理的時候,如果是靜態資源,就直接從nginx發佈的路徑去讀取,而不需要從後臺伺服器獲取了。 nginx通過ups ...
  • 背景介紹 ubuntu 20.04 版本系統自帶的 MySQL 版本是 8.0,普通方法很難安裝 5.7 版本的。由於 8.0 版本較 5.7 版本做了不少改動,筆者比較習慣使用 5.7 版本。 網上搜做了一圈,跟著各種教程試了很多遍,最後終於找到了成功的方法。過程記錄分享出來,供大家參考。 安裝過 ...
  • PostgreSQL的功能非常強大,但是要把PostgreSQL用好,開發人員是非常關鍵的。 下麵將針對PostgreSQL資料庫原理與特性,輸出一份開發規範,希望可以減少大家在使用PostgreSQL資料庫過程中遇到的困惑。 目標是將PostgreSQL的功能、性能發揮好,她好我也好。 ...
  • 京東雲TiDB SQL層的背景介紹 從總體上概括 TiDB 和 MySQL 相容策略,如下表: SQL層的架構 用戶的 SQL 請求會直接或者通過 Load Balancer 發送到 京東雲TiDB Server,TiDB Server 會解析 MySQL Protocol Packet,獲取請求內 ...
  • 主從原理 master伺服器將數據的改變記錄二進位binlog日誌,當master上的數據發生改變時,則將其改變寫入二進位日誌中;slave伺服器會在一定時間間隔內對master二進位日誌進行探測其是否發生改變, 當master伺服器數據發生變化,則slave開始一個I/O Thread請求mast ...
  • 一、什麼是工作流? 在闡述什麼是工作流之前,先說一下工作流和普通任務的區別,在於依賴視圖。 普通任務本身他只會有自己的dag圖,依賴視圖是無邊界的,不可控的,而工作流則是把整個工作流都展示出來,是有邊界的,可控的,這是工作流的優勢。下麵為大家介紹工作流的相關功能: 01 工作流—功能介紹 ● 虛擬節 ...
  • GreatSQL社區原創內容未經授權不得隨意使用,轉載請聯繫小編並註明來源。 GreatSQL是MySQL的國產分支版本,使用上與MySQL一致。 本文來源:原創投稿;作者:YeJinrong/葉金榮 測試效率提升36% ~ 100%,相當可觀 本文目錄 並行構建索引測試 進一步提高索引構建效率 並 ...
  • 背景 企業資料庫選型規則。 一、資料庫部署形式 隨著硬體發展,指標上會有變化。 部署形式決定了容量上限,計算能力上限,讀寫帶寬上限,RPO,RTO指標,適應場景。 1、分散式部署(例如pg+citus插件) 容量上限:100節點以上,PB級。 計算能力上限:100節點以上,6400核以上。 讀寫帶寬 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...