redis---主從復制及哨兵模式(高可用)

主從復制

主從復制:主從復制是redis實現高可用的基礎,哨兵模式和集群都是在主從復制的基礎之上實現高可用。??

主從負責的工作原理

1、主節點(master) 從節點(slave)組成,數據復制是單向的,只能從主節點到從節點。

主從復制實現數據的多機備份,以及讀寫分離(主服務器負責寫,從服務器只負責讀)
缺陷:故障無法自動恢復,需要人工干預,寫操作的負載均衡

工作流程圖

配置主從復制

主從架構服務器聲明:
主:192.168.10.80
從:192.168.10.150
從:192.168.10.151

                                    主:192.168.10.80
*****************************************************************************************
systemctl stop firewalld
setenforce 0
#關閉三臺機器的防火墻和安全機制主節點:
vim /etc/redis/6379.conf
70行
修改網段 0.0.0.0
bind 0.0.0.0
137行
daemonize yes
700行
開啟aof模式
appendonly yes/etc/init.d/redis_6379 restart*****************************************************************************************
                                    從:192.168.10.150
*****************************************************************************************
從節點1:
vim /etc/redis/6379.conf
70行
修改網段 0.0.0.0
bind 0.0.0.0288行
replicaof <masterip> <masterport>
replicaof 20.0.0.26 6379
#指向主的ip和端口700行
開啟aof模式
appendonly yes/etc/init.d/redis_6379 restart
#開啟了指向后從節點將變為只讀模式*****************************************************************************************
                                    從:192.168.10.151
*****************************************************************************************從節點1:
vim /etc/redis/6379.conf
70行
修改網段 0.0.0.0
bind 0.0.0.0288行
replicaof <masterip> <masterport>
replicaof 20.0.0.26 6379
#指向主的ip和端口700行
開啟aof模式
appendonly yes/etc/init.d/redis_6379 restart
#開啟了指向后從節點將變為只讀模式*****************************************************************************************

哨兵模式:

基于主從模式實現主節點自動切換。

哨兵模式的原理:

哨兵:是一個分布式系統,用于在主從結構之間,對每臺redisd的服務進行監控。
主節點出現故障時,從節點通過投票的方式選擇一個新的master
哨兵模式至少需要三個節點。

哨兵模式的結構

哨兵節點:監控,不能存儲數據
數據節點: 主節點和從節點,都是數據節點。
哨兵監控的是節點,每個哨兵節點每間隔一秒,通過ping命令的方式,檢測主從之間的心跳線。
主節點在一定時間內沒有回復或回復了錯誤的消息,這個時候,哨兵就會主觀的認為任務節點已經下線,超過半數的哨兵節點任務主節點下線了,這個時候才會認為主節點是客觀下線。
哨兵節點通過raft算法(選舉算法),每個節點共同投票選舉出一個新的master,然后新的master實現主節點轉移和故障恢復通知。


主節點的選舉過程:

1、已經下線的從節點,不會被選擇
2、選擇配置文件中,從節點優先級先最高的 replica-priority 100
3、選擇一個負責數據最完整的從節點

哨兵監控的是redis服務,圖示如下

哨兵配置實驗

                                    主:192.168.10.80vim /opt/sentinel.conf
*****************************************************************************************取消注釋
17行
protected-mode no21行
port 2637926行
daemonize yes36行
logfile "/var/log/sentinel.log"65行
dir "/var/lib/redis/6379"84行
sentinel monitor mymaster 192.168.10.80 6379 2*****************************************************************************************
                                    從:192.168.10.150vim /opt/sentinel.conf
*****************************************************************************************取消注釋
17行
protected-mode no21行
port 2637926行
daemonize yes36行
logfile "/var/log/sentinel.log"65行
dir "/var/lib/redis/6379"84行
sentinel monitor mymaster 192.168.10.80 6379 2*****************************************************************************************
                                    從:192.168.10.151vim /opt/sentinel.conf
*****************************************************************************************取消注釋
17行
protected-mode no21行
port 2637926行
daemonize yes36行
logfile "/var/log/sentinel.log"65行
dir "/var/lib/redis/6379"84行
sentinel monitor mymaster 192.168.10.80 6379 2*****************************************************************************************

配置完成后啟動哨兵

先啟主服務器,再啟動從服務器
啟動哨兵的命令:redis-sentinel sentinel.conf &
查看哨兵的信息:redis-cli -p 26379 info Sentinel

故障模擬

停止后主的redis服務
/etc/init.d/redis_6379 stop哨兵會在從的里面選出一個從的服務器,將其升為主服務器
新主會繼承原主的讀寫權限
當原主重啟后,
舊主將成為從,并將失去寫的權限

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

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

相關文章

VUE+element可以為空不為空時只能為(正整數和0)的驗證

rule{ 變量: [ { required: true, validator: validateparamPosition, trigger: blur }] } ??????? ??????? ??????? var validateparamPosition (rule, value, callback) > { if (!value) { //先判斷空可以過 ca…

【HarmonyOS】JSON格式化解析Map數據失敗

【關鍵字】 數據轉換、JSON.stringify、Object.fromEntries 【問題背景】 將數組轉換成Map對象&#xff0c;然后調用let str JSON.stringify(newMap)&#xff0c;將Map轉換成字符串&#xff0c;轉換出來的結果是{} 問題代碼&#xff1a; let data [{ key: where, value: …

python數據結構與算法-13_高級排序算法-快速排序

快速排序 快速排序名字可不是蓋的&#xff0c;很多程序語言標準庫實現的內置排序都有它的身影&#xff0c;我們就直奔主題吧。 和歸并排序一樣&#xff0c;快排也是一種分而治之(divide and conquer)的策略。歸并排序把數組遞歸成只有單個元素的數組&#xff0c;之后再不斷兩兩…

docker安裝mysql掛著目錄和mysql備份和恢復

第一&#xff0c;鏡像拉取&#xff0c;運行鏡像并掛載目錄&#xff0c;嘗試掛bin下&#xff0c;啟動不了&#xff0c;不知為啥 docker run --privilegedtrue -itd --namevmysql -p 3306:3306 -v /home/vmysql:/home/vmysql -e MYSQL_ROOT_PASSWORD123456 mysql&#xff08;圖…

Nancy (二)

最近做CS項目&#xff0c;一直在使用TCPSocket 做數據傳輸&#xff0c;不太爽&#xff0c;砸門可是多年BS的開發&#xff0c;這樣開發接口出去比較費勁&#xff0c;但是又不想用asp.net mvc webapi,要按照IIS&#xff0c;有些工控機的系統環境也是很尷尬的&#xff0c;那么也可…

用好說 AI 玩轉奧特曼表情包,居然還能和他們聊個天

你喜歡奧特曼嗎&#xff1f;你相信光嗎&#xff1f; 如果你已經追完了特攝劇、刷完了大電影、用濫了那幾個表情包&#xff0c;那不如來試試用 AI 給自己整點活兒新 “物料”。 不管是和奧特曼 “面對面” 聊天還是 “無中生有” 表情包&#xff0c;AI 都能做&#xff01; (※…

Python 使用SQLAlchemy數據庫模塊

SQLAlchemy 是用Python編程語言開發的一個開源項目&#xff0c;它提供了SQL工具包和ORM對象關系映射工具&#xff0c;使用MIT許可證發行&#xff0c;SQLAlchemy 提供高效和高性能的數據庫訪問&#xff0c;實現了完整的企業級持久模型。 ORM&#xff08;對象關系映射&#xff0…

MySQL For Windows的下載與安裝

教程https://www.bilibili.com/read/cv26499785/ windowse下載地址https://dev.mysql.com/get/Downloads/MySQLInstaller/mysql-installer-community-8.0.35.0.msi

代理模式 (Proxy Pattern)

定義&#xff1a; 代理模式&#xff08;Proxy Pattern&#xff09;是一種結構型設計模式&#xff0c;它通過提供一個代理&#xff08;或稱代表&#xff09;對象來控制對另一個對象的訪問。這種模式創建了一個代理對象&#xff0c;用來代表實際對象的功能&#xff0c;從而可以在…

spring boot 熱部署

相信小伙伴們在日常的開發中&#xff0c;調試代碼時&#xff0c;免不了經常修改代碼&#xff0c;這個時候&#xff0c;為了驗證效果&#xff0c;必須要重啟 Spring Boot 應用。 頻繁地重啟應用&#xff0c;導致開發效率降低&#xff0c;加班隨之而來。有沒有什么辦法&#xff0…

宏電股份受邀參加中國聯通戰新共創啟航大會,共筑產業生態,鏈通數智未來

11月21日&#xff0c;由中國聯通舉辦的主題為“共筑產業生態&#xff0c;鏈通數智未來”的網絡安全現代產業鏈共鏈行動計劃暨戰新共創啟航大會“5G工業互聯網”專題供需對接會在北京順利召開&#xff0c;宏電股份董事長左紹舟應邀出席活動。 會議現場&#xff0c;中國聯通雁飛…

Rust開發——數據對象的內存布局

枚舉與Sized 數據 一般數據類型的布局是其大小&#xff08;size&#xff09;、對齊方式&#xff08;align&#xff09;及其字段的相對偏移量。 1. 枚舉&#xff08;Enum&#xff09;的布局&#xff1a; 枚舉類型在內存中的布局通常是由編譯器來確定的。不同的編譯器可能有不…

centos7 系統keepalived 定時執行腳本

安裝keepalived yum install -y keepalived 修改配置文件 配置文件路徑 /etc/keepalived 配置文件內容 global_defs {router_id localhost.localdomain # 訪問到主機&#xff0c;本機的hostname&#xff0c;需要修改 }vrrp_script chk_http_port {script "/etc/kee…

INFLOW:用于檢測隱藏服務器的反向網絡流水印

文章信息 論文題目&#xff1a;INFLOW: Inverse Network Flow Watermarking for Detecting Hidden Servers 期刊&#xff08;會議&#xff09;&#xff1a;IEEE INFOCOM 2018 - IEEE Conference on Computer Communications 級別&#xff1a;CCF A 文章鏈接&#xff1a;https:…

Docker 安裝 Apache

目錄 拉取官方 Apache 鏡像 查看本地鏡像 列出正在運行的容器 運行 Apache 容器 創建一個 HTML 文件&#xff1a;index.html 訪問 Apache 拉取官方 Apache 鏡像 查找 Docker Hub 上的 httpd 鏡像。 可以通過 Tags 查看其他版本的 httpd&#xff0c;默認是最新版本 httpd…

人工智能學習階段有哪些?

人工智能學習階段有哪些? 人工智能是一個跨學科、跨領域的雜交學科&#xff0c;未來的趨勢來看,人工智能的出現使人們的生活變得更美好、更便捷&#xff0c;許多小伙伴想學習人工智能&#xff0c;其實看似人工智能比較雜多&#xff0c;無從下手&#xff0c;我們只要從以下7個階…

go build自建包報錯package XXX is not in std

在構建包名的時候遇到了如下錯誤 C:\Users\xxx\Desktop\code\golx\src>go build example package example is not in std (D:\Go\src\example) 解決方法 修改 GO111MODULE go env -w GO111MODULEoff

SpringMVC 基礎知識

學習目標 掌握基于 SpringMVC 獲取請求參數與響應 json 數據操作熟練應用基于 REST 風格的請求路徑設置與參數傳遞能夠根據實際業務建立前后端開發通信協議并進行實現基于 SSM 整合技術開發任意業務模塊功能 1 SpringMVC 簡介 1.1 概述 1.1.1 web程序開發流程 【執行過程】…

【搭環境】裝Python3.8 open3d

先裝Python3.8 方法一試了找不到Python3.8的庫&#xff0c;所以用方法二裝上了。 Python3加入環境變量 更改Python默認指向 open3d需要Python3.6以上&#xff0c;最好用Ubuntu18版本&#xff0c;我用的16版本。。

從入門到精通!Python數據分析暢銷書《利用Python進行數據分析》第三版中文版助你成為數據分析師!

Python數據分析暢銷書《利用Python進行數據分析》第三版中文版助你成為數據分析師&#xff01; 個人簡介什么是數據分析如何自學數據分析書籍推薦作譯者簡介作者簡介譯者簡介 主要變動導讀視頻&#xff1a;購書鏈接&#xff1a;參與方式往期贈書回顧 個人簡介 &#x1f3d8;?&…