redis集群 主從同步 備份

redis備份

redis有兩種備份方式:RDB AOF

RDB:這種方式是redis主進(jìn)程fork一個(gè)子進(jìn)程將內(nèi)存數(shù)據(jù)dump到一個(gè)臨時(shí)的RDB文件,在寫入完畢后替換之前的RDB文件

AOF:這種方式是redis在接收寫入命令的時(shí)候,不斷append aof文件。當(dāng)文件到達(dá)一定大小的時(shí)候進(jìn)行壓縮,壓縮是對(duì)當(dāng)前內(nèi)存的數(shù)據(jù)整合成若干命令,同時(shí)對(duì)壓縮過程中接收的命令進(jìn)行緩存,在壓縮結(jié)束后對(duì)緩存中的命令進(jìn)行append

優(yōu)缺點(diǎn)

RDB數(shù)據(jù)恢復(fù)快 但是容易丟失數(shù)據(jù) 同步的時(shí)候如果文件特別大 容易卡頓
AOF數(shù)據(jù)完整 但是數(shù)據(jù)恢復(fù)慢

redis主從同步

主從同步分為:全量同步 增量同步

全量同步:一般發(fā)生在slave初始化的時(shí)候,會(huì)發(fā)送一個(gè)sync命令給master,master接收到命令的時(shí)候fork一個(gè)子進(jìn)程進(jìn)行rdb操作,在RBD結(jié)束之后循環(huán)所有的slave 把RDB數(shù)據(jù)發(fā)送給它們。

增量同步:在master接收寫命令同步給slave。

redis集群原理

redis集群包括兩個(gè)東西。一個(gè)是solt 一個(gè)是cluster,首先集群啟動(dòng)的時(shí)候會(huì)給16384個(gè)solt分配節(jié)點(diǎn)。為什么是16384個(gè)槽,因?yàn)橐粋€(gè)槽代表1bit 8bit*1024 =2kb,設(shè)計(jì)者認(rèn)為集群的最大節(jié)點(diǎn)不超過100 所以一個(gè)節(jié)點(diǎn)用163個(gè)槽是足夠的,并且2kb的心跳包能接受。當(dāng)我們有key過來時(shí) 先通過crc16算法得到一個(gè)結(jié)果然后對(duì)16384求余,得到該key的節(jié)點(diǎn)信息寫入。集群里面的節(jié)點(diǎn)是通過心跳連接保持通信的。如果有一半的節(jié)點(diǎn)認(rèn)為一個(gè)主節(jié)點(diǎn)掛了,那么它的slave節(jié)點(diǎn)中選舉一個(gè)擔(dān)任master。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 從這篇文章開始,將依次介紹Redis高可用相關(guān)的知識(shí)——持久化、復(fù)制(及讀寫分離)、哨兵、以及集群。 本文將先說明...
    不變甄心閱讀 737評(píng)論 0 4
  • NOSQL類型簡介鍵值對(duì):會(huì)使用到一個(gè)哈希表,表中有一個(gè)特定的鍵和一個(gè)指針指向特定的數(shù)據(jù),如redis,volde...
    MicoCube閱讀 4,160評(píng)論 2 27
  • 前言 在上一篇文章中,介紹了Redis內(nèi)存模型,從這篇文章開始,將依次介紹Redis高可用相關(guān)的知識(shí)——持久化、復(fù)...
    Java架構(gòu)閱讀 2,503評(píng)論 3 21
  • 一、Redis高可用概述 在介紹Redis高可用之前,先說明一下在Redis的語境中高可用的含義。 我們知道,在w...
    空語閱讀 1,681評(píng)論 0 2
  • 題目1: 輪播的實(shí)現(xiàn)原理是怎樣的?如果讓你來實(shí)現(xiàn),你會(huì)抽象出哪些函數(shù)(or接口)供使用?(比如 play()) 輪...
    Gia_Mo閱讀 193評(píng)論 0 0

友情鏈接更多精彩內(nèi)容