欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

redis集群主從節(jié)點自動切換方式

 更新時間:2024年01月18日 09:47:37   作者:nedjie  
這篇文章主要介紹了redis集群主從節(jié)點自動切換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

redis集群主從節(jié)點自動切換

最近在將redis作為數(shù)據(jù)庫使用(redis中存放大量數(shù)據(jù))的項目中,偶然發(fā)現(xiàn)redis的主從節(jié)點發(fā)生了變化,但是沒有任務(wù)報錯,redis集群的各節(jié)點也沒有fail狀態(tài),因此記錄學(xué)習(xí)一下,redis的深層機制。

為什么

首先redis是單線程的,所有的命令發(fā)送的redis會進入一個隊列,依次執(zhí)行。

當(dāng)數(shù)據(jù)量很大時,執(zhí)行flushall、keys、scan等耗時較長的命令時,就會照成redis節(jié)點阻塞。

其次,了解一下redis的集群節(jié)點檢測機制。redis集群的其他節(jié)點,每隔一斷時間,就會向集群中的其他節(jié)點發(fā)送ping包,以檢測節(jié)點是否還活著。

如果此時,某個主節(jié)點阻塞了,收到pong包的時間超時,大于 cluster-node-timeout,就會自動切換主從節(jié)點。

此時,在redis-cli中查看cluster nodes,會發(fā)現(xiàn)節(jié)點會短暫的出現(xiàn)fail狀態(tài)。

當(dāng)主從節(jié)點切換完畢,redis又會重新掃描一下集群中的所有redis節(jié)點,當(dāng)阻塞的redis節(jié)點,執(zhí)行完之后,又會重新回到正常狀態(tài)。

解決

了解了上面說的redis機制之后,如果想要避免redis節(jié)點自動切換就很簡單了,只需要調(diào)大redis.conf中的配置項cluster-node-timeout(默認15000 millisec)即可。

Redis的主從復(fù)制

主從復(fù)制

主機數(shù)據(jù)更新后根據(jù)配置和策略,自動同步到從機的master/slave機制,Master以寫為主,Slave以讀為主。

一主二從

一主二從原理

1、配從(庫)不配主(庫)

2、配從(庫): slaveof 主庫IP 主庫端口

3、主寫從讀、讀寫分離

4、從連前后同

5、主斷從待命、從斷重新連

一主二從搭建

1、一臺服務(wù)器模擬三臺主機:

  • 第一步:將redis.conf 拷貝三份,名字分別是,redis6379.conf,redis6380.conf,redis6381.conf
  • 第二步:修改三個文件的port端口,pid文件名,日志文件名,rdb文件名

如:

port 6379
pidfile /var/run/redis_6379.pid
logfile “6379.log”
dbfilename dump6379.rdb
  • 第三步:分別打開三個窗口模擬三臺服務(wù)器,開啟redis服務(wù)。

2、查詢主從信息:info replication

3、寫操作6379:

4、設(shè)置主從關(guān)系:

在6380和6381主機上分別執(zhí)行命令:slaveof 127.0.0.1 6379

另一種方式,就是修改6380和6381的配置文件,在最后加上:

注意:如果主redis設(shè)置了密碼,從庫的redis.conf中還需要設(shè)置masterauth為主redis的密碼。

5、全量復(fù)制:在6380和6381分別執(zhí)行命令get k1

6、增量復(fù)制:6379執(zhí)行命令:set k2 v2。然后6380端口和6381端口,分別執(zhí)行命令:get k2

7、主寫從讀、讀寫分離:在6380和6381上執(zhí)行寫操作set k3 v3

8、主機宕機:6379執(zhí)行指令shutdown,并查看6380和6381的redis信息 從機原地待命。

9、主機宕機后恢復(fù):重啟6379,并且執(zhí)行寫命令set k4 v4;6380和6381上分別執(zhí)行g(shù)et k4 主機重啟后,一切正常。

10、從機宕機:6380執(zhí)行指令shutdown,并查看6379和6381的redis信息

11、從機宕機后恢復(fù):重啟6380,并查看6380、6379和6381的redis信息

注意:從機跟master斷開聯(lián)系,必須重新連接,除非寫進配置文件。

12、從機恢復(fù)連主機前,主機寫操作:6379執(zhí)行寫命令set k5 v5,6380和6381分別執(zhí)行命令get k5

13、從機恢復(fù)連接主機,6380執(zhí)行命令:slaveof 127.0.0.1 6379,并且執(zhí)行命令:get k5

14、從機上位:

  • 第一步:主機宕機,6379執(zhí)行命令:shutdown
  • 第二步:6380斷開主從關(guān)系,執(zhí)行命令:SLAVEOF no one
  • 第三步:重新搭建主從,6381執(zhí)行命令:info replication,SLAVEOF 127.0.0.1 6380
  • 第四步:之前主機恢復(fù),重啟6379的Redis服務(wù),并執(zhí)行命令:info replication

在6379主機宕機后,6380從機斷開主從關(guān)系,6381開始還在原地待命;后來6380從機上位,6381投靠6380,6379主機即使回來但它已是孤寡老人,空頭司令。

15、天堂變地獄:6379執(zhí)行命令saveof 127.0.0.1 6381,并在6379和6381執(zhí)行info replication

一臺主機配多臺從機,一臺從機再配多臺從機,從而實現(xiàn)了龐大的集群架構(gòu)。同時也減輕了一臺主機的壓力,缺點是增加了服務(wù)器間的延遲。

復(fù)制原理

全量復(fù)制

slave啟動成功連接到master后會發(fā)送一個sync命令;Master接到命令啟動后臺的存盤進程,同時收集所有接收到的用于修改數(shù)據(jù)集命令,在后臺進程執(zhí)行完畢之后,master將傳送整個數(shù)據(jù)文件到slave,以完成一次完全同步;slave服務(wù)在接收到數(shù)據(jù)庫文件數(shù)據(jù)后,將其存盤并加載到內(nèi)存中。

只要是重新連接master,一次完全同步(全量復(fù)制)將被自動執(zhí)行。

增量復(fù)制

Master將新的所有收集到的修改命令依次傳給slave,完成同步。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • redis使用跳躍表而不是樹的原因解析

    redis使用跳躍表而不是樹的原因解析

    Redis中支持五種數(shù)據(jù)類型中有序集合Sorted Set的底層數(shù)據(jù)結(jié)構(gòu)使用的跳躍表,為何不使用其他的如平衡二叉樹、b+樹等數(shù)據(jù)結(jié)構(gòu)呢?這篇文章主要介紹了redis使用跳躍表而不是樹的原因解析,需要的朋友可以參考下
    2024-02-02
  • 基于Redis分布式BitMap的應(yīng)用分析

    基于Redis分布式BitMap的應(yīng)用分析

    這篇文章主要介紹了基于Redis分布式BitMap的應(yīng)用,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • 關(guān)于Redis單線程的正確理解

    關(guān)于Redis單線程的正確理解

    很多同學(xué)對Redis的單線程和I/O多路復(fù)用技術(shù)并不是很了解,所以我用簡單易懂的語言讓大家了解下Redis單線程和I/O多路復(fù)用技術(shù)的原理,對學(xué)好和運用好Redis打下基礎(chǔ),感興趣的朋友跟隨小編一起看看吧
    2021-11-11
  • Redis底層類型之json命令使用

    Redis底層類型之json命令使用

    這篇文章主要為大家介紹了Redis底層類型之json命令使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • CentOS系統(tǒng)中Redis數(shù)據(jù)庫的安裝配置指南

    CentOS系統(tǒng)中Redis數(shù)據(jù)庫的安裝配置指南

    Redis是一個基于主存存儲的數(shù)據(jù)庫,性能很強,這里我們就來看一下CentOS系統(tǒng)中Redis數(shù)據(jù)庫的安裝配置指南,包括將Redis作為系統(tǒng)服務(wù)運行的技巧等,需要的朋友可以參考下
    2016-06-06
  • redis哨兵模式說明與搭建詳解

    redis哨兵模式說明與搭建詳解

    這篇文章主要介紹了redis哨兵模式說明與搭建詳解,需要的朋友可以參考下
    2023-01-01
  • Redis主從復(fù)制實現(xiàn)原理分析

    Redis主從復(fù)制實現(xiàn)原理分析

    Redis主從復(fù)制通過Sync和CommandPropagate階段實現(xiàn)數(shù)據(jù)同步,2.8版本后引入Psync指令,根據(jù)復(fù)制偏移量進行全量或部分同步,優(yōu)化了數(shù)據(jù)傳輸效率
    2025-01-01
  • 手動實現(xiàn)Redis的LRU緩存機制示例詳解

    手動實現(xiàn)Redis的LRU緩存機制示例詳解

    這篇文章主要介紹了手動實現(xiàn)Redis的LRU緩存機制示例詳解,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Redis為什么要存兩次數(shù)據(jù)

    Redis為什么要存兩次數(shù)據(jù)

    這篇文章主要介紹了Redis為什么要存兩次數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2021-02-02
  • Redis實現(xiàn)驗證碼發(fā)送并限制每日發(fā)送次數(shù)的示例代碼

    Redis實現(xiàn)驗證碼發(fā)送并限制每日發(fā)送次數(shù)的示例代碼

    本文主要介紹了Redis實現(xiàn)驗證碼發(fā)送并限制每日發(fā)送次數(shù)的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04

最新評論