最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Redis主從配置和底層實現(xiàn)原理解析(實戰(zhàn)記錄)

 更新時間:2021年06月29日 15:18:45   作者:沮喪的南瓜  
今天給大家分享Redis主從配置和底層實現(xiàn)原理解析,本文通過實戰(zhàn)項目給大家源碼解析,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧

我們使用Redis的時候往往都是主從模式或者集群架構,不會使用單臺Redis服務。

一、Redis主從配置實戰(zhàn)

我們使用master節(jié)點寫輸入,然后將數(shù)據(jù)同步到slave節(jié)點,從節(jié)點可以提供讀取或者備份的功能,分擔master節(jié)點壓力。

在這里插入圖片描述

redis主從架構搭建,配置從節(jié)點步驟

1、 復制一份redis.conf文件為redis-6380.conf

cp ./redis.conf ./conf/redis-6380.conf

2、打開redis-6380.conf配置文件,將相關配置修改為如下值:

port 6380
pidfile /var/run/redis_6380.pid # 把pid進程號寫入pidfile配置的文件
logfile "6380.log"
dir /usr/local/redis‐5.0.3/data/6380 # 指定數(shù)據(jù)存放目錄
# 需要注釋掉bind
# bind 127.0.0.1(bind綁定的是自己機器網(wǎng)卡的ip,如果有多塊網(wǎng)卡可以配多個ip,代表允許客戶端通過機器的哪些網(wǎng)卡ip去訪問,內網(wǎng)一般可以不配置bind,注釋掉即可)

3、在redis-6380.conf中配置主從復制

replicaof 192.168.0.60 6379 # 從本機6379的redis實例復制數(shù)據(jù),Redis 5.0之前使用slaveof. 這里的IP是redis服務IP
replica‐read‐only yes # 配置從節(jié)點只讀

注意: 如果的時候發(fā)現(xiàn)從節(jié)點中始終是空,即沒有同步到主節(jié)點的數(shù)據(jù),可能是192.168.0.60的設置問題,如果是主從都在一臺服務器上,可以試試改成127.0.0.1.
4、啟動從節(jié)點

注意一下命令,我這里是相對路徑。

 ./src/redis-server ./conf/redis-6380.conf 

然后我們查看redis服務實例,發(fā)現(xiàn)6379和6380都已經啟動了。

在這里插入圖片描述

5、連接從節(jié)點

[root@localhost redis-6.2.3]# ./src/redis-cli -p 6380
127.0.0.1:6380>

查看是否同步了數(shù)據(jù):

127.0.0.1:6380> keys *
1) "test3"
2) "tul2"
3) "tul"
4) "tul3"
5) "test1"
6) "yaolao"
7) "test2"
127.0.0.1:6380> 

注意: 如果的時候發(fā)現(xiàn)從節(jié)點中始終是空,即沒有同步到主節(jié)點的數(shù)據(jù),可能是192.168.0.60的設置問題,如果是主從都在一臺服務器上,可以試試改成127.0.0.1試試。、

6、測試在6379實例上寫數(shù)據(jù),6380實例是否能及時同步新修改數(shù)據(jù)

7、可以自己再配置一個6381的從節(jié)點

至此。,我們的主從配置就完成了。我們可以自己去配置多個從節(jié)點。

二、主從實現(xiàn)原理

如果你為master配置了一個slave,不管這個slave是否是第一次連接上Master,它都會發(fā)送一個PSYNC命令給master請求復制數(shù)據(jù)。

master收到PSYNC命令后,會在后臺進行數(shù)據(jù)持久化通過bgsave生成最新的rdb快照文件,持久化期間,master會繼續(xù)接收客戶端的請求,它會把這些可能修改數(shù)據(jù)集的請求緩存在內存中。當持久化進行完畢以后,master會把這份rdb文件數(shù)據(jù)集發(fā)送給slave,slave會把接收到的數(shù)據(jù)進行持久化生成rdb,然后再加載到內存中。然后,master再將之前緩存在內存中的命令發(fā)送給slave。

當master與slave之間的連接由于某些原因而斷開時,slave能夠自動重連Master,如果master收到了多
個slave并發(fā)連接請求,它只會進行一次持久化,而不是一個連接一次,然后再把這一份持久化的數(shù)據(jù)發(fā)送
給多個并發(fā)連接的slave。

主從復制(全量復制)流程圖

在這里插入圖片描述

psync命令是redis底層的C語言實現(xiàn)的。

數(shù)據(jù)部分復制

當master和slave斷開重連后,一般都會對整份數(shù)據(jù)進行復制。但從redis2.8版本開始,redis改用可以支持部分數(shù)據(jù)復制的命令PSYNC去master同步數(shù)據(jù),slave與master能夠在網(wǎng)絡連接斷開重連后只進行部分數(shù)據(jù)復制(斷點續(xù)傳)。

master會在其內存中創(chuàng)建一個復制數(shù)據(jù)用的緩存隊列,緩存最近一段時間的數(shù)據(jù),master和它所有的slave都維護了復制的數(shù)據(jù)下標offset和master的進程id,因此,當網(wǎng)絡連接斷開后,slave會請求master繼續(xù)進行未完成的復制,從所記錄的數(shù)據(jù)下標開始。如果master進程id變化了,或者從節(jié)點數(shù)據(jù)下標offset太舊,已經不在master的緩存隊列里了,那么將會進行一次全量數(shù)據(jù)的復制。

主從復制(部分復制,斷點續(xù)傳)流程圖:

如果slave節(jié)點掛了之后,只想同步新增的數(shù)據(jù)(不需要同步全部)。

最新的命令redis會寫到repl backlog buffer(默認大小是1MB)這個緩沖區(qū)中。

在這里插入圖片描述

offset是偏移量,即上次復制產生的偏移量,再一次復制新的數(shù)據(jù)的時候只需要從這個偏移量后面開始復制即可。注意,這種只適合幾分鐘之內的。

如果從緩沖區(qū)沒有找到傳過來的這個偏移量,說明從節(jié)點可能掛了非常久的時間,這時候需要做全量復制,而不是斷點續(xù)傳了。

緩解主從復制風暴

如果有很多從節(jié)點,為了緩解主從復制風暴(多個從節(jié)點同時復制主節(jié)點導致主節(jié)點壓力過大),可以做如下架構,讓部分從節(jié)點與從節(jié)點(與主節(jié)點同步)同步數(shù)據(jù),即配置主從的ip地址可以寫某個從節(jié)點的,而不是都寫mast節(jié)點的IP.

在這里插入圖片描述

到此這篇關于Redis主從配置和底層實現(xiàn)原理解析(實戰(zhàn)記錄)的文章就介紹到這了,更多相關Redis主從配置內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • redis中Hash字典操作的方法

    redis中Hash字典操作的方法

    redis支持五大數(shù)據(jù)類型,只支持第一層,也就說字典的value值,必須是字符串,本文主要介紹了redis中Hash字典操作,感興趣的可以了解一下
    2021-07-07
  • 基于redis實現(xiàn)的點贊功能設計思路詳解

    基于redis實現(xiàn)的點贊功能設計思路詳解

    點贊是我們現(xiàn)在經常見到的一個效果,如朋友圈、微博都有點贊的效果,下面這篇文章主要跟大家分享了基于redis實現(xiàn)的點贊功能設計思路的相關資料,文中介紹的非常詳細,對大家實現(xiàn)點贊功能具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • redis持久化AOF和RDB的區(qū)別及解決各個場景問題示例

    redis持久化AOF和RDB的區(qū)別及解決各個場景問題示例

    這篇文章主要為大家介紹了redis持久化AOF和RDB的區(qū)別及解決各個場景問題示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • linux安裝配置及使用redis

    linux安裝配置及使用redis

    本文主要跟大家講解的是在Linux環(huán)境下,Redis的安裝與部署,非常的簡單實用,有需要的小伙伴可以參考下
    2018-04-04
  • Redis教程(七):Key操作命令詳解

    Redis教程(七):Key操作命令詳解

    這篇文章主要介紹了Redis教程(七):Key操作命令詳解,本文講解了Key操作命令概述、相關命令列表、命令使用示例等內容,需要的朋友可以參考下
    2015-04-04
  • Redis?數(shù)據(jù)恢復及持久化策略分析

    Redis?數(shù)據(jù)恢復及持久化策略分析

    本文將詳細分析Redis的數(shù)據(jù)恢復機制,持久化策略及其特點,并討論選擇持久化策略時需要考慮的因素,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-06-06
  • 通過kubesphere部署redis的方法

    通過kubesphere部署redis的方法

    這篇文章主要介紹了通過kubesphere部署redis的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Redis過期鍵與內存淘汰策略深入分析講解

    Redis過期鍵與內存淘汰策略深入分析講解

    因為redis數(shù)據(jù)是基于內存的,然而內存是非常寶貴的資源,然后我們就會對一些不常用或者只用一次的數(shù)據(jù)進行存活時間設置,這樣才能提高內存的使用效率,下面這篇文章主要給大家介紹了關于Redis中過期鍵與內存淘汰策略,需要的朋友可以參考下
    2022-11-11
  • 一篇文章讓你明白Redis主從同步

    一篇文章讓你明白Redis主從同步

    今天小編就為大家分享一篇關于一篇文章讓你明白Redis主從同步,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • redis適合場景八點總結

    redis適合場景八點總結

    在本篇文章中我們給大家整理了關于redis適合什么場景的8點知識點內容,需要的朋友們參考下。
    2019-06-06

最新評論

平和县| 新建县| 静安区| 西安市| 洪洞县| 名山县| 西宁市| 泗洪县| 巨野县| 吴忠市| 庆云县| 达日县| 讷河市| 东港市| 德惠市| 襄垣县| 丹凤县| 灵台县| 太仓市| 博客| 彭泽县| 青冈县| 延庆县| 酒泉市| 中方县| 辰溪县| 翁牛特旗| 禹州市| 昌黎县| 靖远县| 新营市| 阿坝| 龙胜| 洛阳市| 井冈山市| 石楼县| 连州市| 溆浦县| 平安县| 舟山市| 上思县|