99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深入探究Redis存儲(chǔ)原理

jf_78858299 ? 來(lái)源:老李說(shuō)架構(gòu)之道 ? 作者:夢(mèng)海飛翔 ? 2023-02-15 15:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Redis是用C語(yǔ)言開發(fā)的一個(gè)開源的高性能鍵值對(duì)(key-value)內(nèi)存數(shù)據(jù)庫(kù)。

Redis數(shù)據(jù)存儲(chǔ)原理

** 存儲(chǔ)結(jié)構(gòu)如圖:**

圖片

redisDB、dict、dictht、dictEntry、RedisObject的存儲(chǔ)結(jié)構(gòu)關(guān)系如圖:

圖片

占的字節(jié)數(shù):

dictEntry :16字節(jié)、RedisObject:12字節(jié)、sds:8字節(jié) + 字符串長(zhǎng)度

我們現(xiàn)在思考,如果一個(gè)10字節(jié)的key,需要多少存儲(chǔ)空間呢?

16+12+8+10+1=47*2(exprires也需要同樣的空間所以乘以倍數(shù))

結(jié)論:在key設(shè)置的時(shí)候盡量的少的字節(jié),避免空間的浪費(fèi);

內(nèi)存清理方式:

  • 定期清理

    隨機(jī)取樣的方式,如果清理的比例大于25%,繼續(xù)。如下圖:

圖片

  • 惰性刪除:被動(dòng)刪除策略,訪問(wèn)時(shí)判斷;

  • LFU

    volatile-lfu:對(duì)有過(guò)期時(shí)間的key采用LFU淘汰算法;
    allkeys-lfu:對(duì)全部key采用LFU淘汰算法;

  • LRU

    volatile-lru:從設(shè)置了過(guò)期時(shí)間的數(shù)據(jù)集中,選擇最近最久未使用的數(shù)據(jù)釋放;
    allkeys-lru:從數(shù)據(jù)集中選擇最近最久未使用的數(shù)據(jù)釋放;

Redis數(shù)據(jù)固化方式

  • RDB快照方式

    手動(dòng)方式:
    
                  save:阻塞當(dāng)前Redis服務(wù)器,直到RDB過(guò)程完成為止;
    
          自動(dòng)方式:
    
                   bgsave:fork子進(jìn)程,持久化過(guò)程由子進(jìn)程負(fù)責(zé),完成后自動(dòng)結(jié)束;
    
          配置項(xiàng):save m n,m秒存在n次寫入,觸發(fā)bgsave  ;
    

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

    對(duì)Redis性能影響低,二進(jìn)制壓縮文件體積小,數(shù)據(jù)恢復(fù)塊;
    

    ** 缺點(diǎn):**

    有數(shù)據(jù)丟失可能,備份文件版本兼容問(wèn)題;
    

    ** 過(guò)程如圖:**

圖片* AOF快照方式

append only file,日志形式記錄寫入指令,實(shí)時(shí)持久化;**命令寫入過(guò)程:**

圖片

配置 含義 效率 數(shù)據(jù)安全
appendfsync=always 每次同步 全最高,最多丟失一個(gè)寫入的數(shù)據(jù)
appendfsync=everysec 每秒同步 安全最折中,最多丟失1S的數(shù)據(jù)
appendfsync=no 關(guān) 閉 安全最低,最多上一次保存AOF文件到當(dāng)前時(shí)刻的全部數(shù)據(jù)
  • AOF文件重寫
    • fork子進(jìn)程不影響父進(jìn)程處理請(qǐng)求
    • 子進(jìn)程雙寫,確保數(shù)據(jù)不丟失
    • 手動(dòng)觸發(fā):調(diào)用bgrewriteaof命令
    • 被動(dòng)觸發(fā):
      • auto-aof-rewrite-min-size
      • auto-aof-rewrite-percentage
      • aof_current_size
      • aof_base_size

過(guò)程如圖:

圖片

Redis重啟恢復(fù)過(guò)程:

圖片

注意:重啟的過(guò)程中需要注意:如果開啟RDB模型,未開啟AOF模式,而在重啟的時(shí)候開啟AOF模式,這是RDB****的數(shù)據(jù)就會(huì)覆蓋掉。

Redis可靠性保障

  • 主從模式
    啟動(dòng)時(shí),全量同步Slave。增量同步,運(yùn)行ID(Master啟動(dòng)時(shí)生成),同步給Slave,通過(guò)復(fù)制偏移量確定具體同步位置;
    

具體同步過(guò)程如下圖所示:

圖片

  • 哨兵模式
    不斷地檢查Master和Slave是否運(yùn)作正常,發(fā)現(xiàn)故障通知管理員和客戶端,自動(dòng)主從切換,更新配置信息,客戶端應(yīng)用初始化時(shí)連接Sentinel獲取節(jié)點(diǎn)信息;
    

哨兵模式架構(gòu):

圖片

  • 集群模式

    無(wú)需Sentinel哨兵,支持水平擴(kuò)容,自動(dòng)遷移。

圖片

缺點(diǎn):

不支持批量操作,客戶端路由,兩次交互,存在性能問(wèn)題,如圖:

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何使用Rust連接Redis

    Redis是一款快速、開源、鍵值存儲(chǔ)數(shù)據(jù)庫(kù),被廣泛應(yīng)用于緩存、發(fā)布/訂閱系統(tǒng)、定時(shí)任務(wù)等場(chǎng)景中。Rust提供了很多Redis的客戶端庫(kù),本教程將會(huì)介紹如何使用Rust連接Redis,以
    的頭像 發(fā)表于 09-19 16:22 ?2935次閱讀

    Redis Stream應(yīng)用案例

    ,還有一個(gè)很重要的能力是跨平臺(tái),甚至是作為一個(gè)嵌入式的存儲(chǔ)系統(tǒng)跑在基于ARM的平臺(tái)上,比如作者之前就宣稱,Redis成功的跑在了“樹莓派”上。試想一下,在IoT時(shí)代,會(huì)有無(wú)數(shù)隨時(shí)隨地可以接入互聯(lián)網(wǎng)
    發(fā)表于 06-26 17:15

    深入探究Linux的設(shè)備樹

    新版本linux設(shè)備樹講解?。pt- 深入探究Linux的設(shè)備樹_2017.8.14.pdf
    發(fā)表于 07-03 08:03

    深入探究Linux的設(shè)備樹

    新版本linux設(shè)備樹講解??!ppt- 深入探究Linux的設(shè)備樹_2017.8.14.pdf
    發(fā)表于 07-09 00:15

    redis概述

    REmote DIctionary Server(Redis)是一個(gè)基于key-value鍵值對(duì)的持久化數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng)。redis和大名鼎鼎的Memcached緩存服務(wù)軟件很像,但是redis
    發(fā)表于 07-17 07:38

    如何使得redis中的數(shù)據(jù)不再有

    ,原因是redis的持久化功能導(dǎo)致的,所謂的持久化就是redis在系統(tǒng)關(guān)閉的時(shí)候把數(shù)據(jù)存儲(chǔ)到硬盤中,在下一次啟動(dòng)的時(shí)候,在從硬盤恢復(fù)到redis中,
    發(fā)表于 11-05 08:50

    電子狗工作原理深入探究

    電子狗工作原理深入探究,感興趣的小伙伴們可以看看。
    發(fā)表于 07-28 09:32 ?17次下載

    簡(jiǎn)要分析Redis的特性

    的、鍵值存儲(chǔ)數(shù)據(jù)庫(kù)。它也被稱為作為鍵值存儲(chǔ)的字典服務(wù)器,這些鍵值不僅可以是字符串,還可以是hashes(哈希類型)、sets(集合)、lists(列表) 和sorted sets(有序集合)。 Redis
    發(fā)表于 10-11 15:21 ?0次下載
    簡(jiǎn)要分析<b class='flag-5'>Redis</b>的特性

    通過(guò)講述Redis的數(shù)據(jù)結(jié)構(gòu)和主要命令對(duì)Redis的基本能力進(jìn)行直觀介紹

    本文將從Redis的基本特性入手,通過(guò)講述Redis的數(shù)據(jù)結(jié)構(gòu)和主要命令對(duì)Redis的基本能力進(jìn)行直觀介紹。之后在性能調(diào)優(yōu)等方面進(jìn)行更深入的介紹和指導(dǎo)。
    的頭像 發(fā)表于 01-25 15:41 ?4175次閱讀

    Redis為什么這么快!深入了解Redis的內(nèi)存模型!

    Redis是目前最火爆的內(nèi)存數(shù)據(jù)庫(kù)之一,通過(guò)在內(nèi)存中讀寫數(shù)據(jù),大大提高了讀寫速度,可以說(shuō)Redis是實(shí)現(xiàn)網(wǎng)站高并發(fā)不可或缺的一部分。
    的頭像 發(fā)表于 05-02 16:57 ?4627次閱讀
    <b class='flag-5'>Redis</b>為什么這么快!<b class='flag-5'>深入</b>了解<b class='flag-5'>Redis</b>的內(nèi)存模型!

    Redis混合存儲(chǔ)產(chǎn)品與架構(gòu)介紹

    摘要:?簡(jiǎn)介 Redis混合存儲(chǔ)實(shí)例是阿里云自主研發(fā)的完全兼容Redis協(xié)議和特性的混合存儲(chǔ)產(chǎn)品。通過(guò)將部分冷數(shù)據(jù)存儲(chǔ)到磁盤,在保證絕大部分
    發(fā)表于 08-30 16:09 ?249次閱讀

    關(guān)于redis中數(shù)據(jù)存儲(chǔ)的機(jī)制解析

    不同于memcached等完全基于內(nèi)存的緩存中間件,Redis同時(shí)還提供了持久化功能,這也是為什么Redis不僅可以用來(lái)做數(shù)據(jù)緩存還可以用來(lái)做數(shù)據(jù)存儲(chǔ),服務(wù)器節(jié)點(diǎn)宕機(jī)之后可以通過(guò)事先持久化的數(shù)據(jù)還原數(shù)據(jù)到某個(gè)時(shí)間點(diǎn)的狀態(tài)。
    發(fā)表于 09-02 10:46 ?1184次閱讀
    關(guān)于<b class='flag-5'>redis</b>中數(shù)據(jù)<b class='flag-5'>存儲(chǔ)</b>的機(jī)制解析

    探究Redis 性能測(cè)試與監(jiān)控

    很多人在安裝部署好Redis后,就沒(méi)有對(duì)Rredis的配置和部署等有效性和高可用性進(jìn)行性能測(cè)試,最終導(dǎo)致上線出現(xiàn)緩存穿透、雪崩等現(xiàn)象,導(dǎo)致性能還是有問(wèn)題,其實(shí)做為技術(shù)運(yùn)維人員在部署好Redis后可以
    的頭像 發(fā)表于 10-12 09:19 ?1688次閱讀
    <b class='flag-5'>探究</b><b class='flag-5'>Redis</b> 性能測(cè)試與監(jiān)控

    Redis架構(gòu)演化之路

    這個(gè)架構(gòu)非常簡(jiǎn)單,你的業(yè)務(wù)應(yīng)用可以把 Redis 當(dāng)做緩存來(lái)使用,從 MySQL 中查詢數(shù)據(jù),然后寫入到 Redis 中,之后業(yè)務(wù)應(yīng)用再?gòu)?Redis 中讀取這些數(shù)據(jù),由于 Redis
    的頭像 發(fā)表于 08-03 16:54 ?841次閱讀
    <b class='flag-5'>Redis</b>架構(gòu)演化之路

    Redis實(shí)戰(zhàn)筆記

    《 2024最新Redis 實(shí)戰(zhàn)筆記》,這份筆記對(duì) Redis 的相關(guān)知識(shí)做了系統(tǒng)全面的介紹,還是PDF版本,可自由復(fù)制,特別適合 Redis 初學(xué)者快速入門和提高。 ? 本筆記適合人群:前半部分適合
    的頭像 發(fā)表于 02-09 09:12 ?390次閱讀
    <b class='flag-5'>Redis</b>實(shí)戰(zhàn)筆記