色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

深入探究Redis存儲原理

jf_78858299 ? 來源:老李說架構之道 ? 作者:夢海飛翔 ? 2023-02-15 15:52 ? 次閱讀

Redis是用C語言開發的一個開源的高性能鍵值對(key-value)內存數據庫。

Redis數據存儲原理

** 存儲結構如圖:**

圖片

redisDB、dict、dictht、dictEntry、RedisObject的存儲結構關系如圖:

圖片

占的字節數:

dictEntry :16字節、RedisObject:12字節、sds:8字節 + 字符串長度

我們現在思考,如果一個10字節的key,需要多少存儲空間呢?

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

結論:在key設置的時候盡量的少的字節,避免空間的浪費;

內存清理方式:

  • 定期清理

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

圖片

  • 惰性刪除:被動刪除策略,訪問時判斷;

  • LFU

    volatile-lfu:對有過期時間的key采用LFU淘汰算法;
    allkeys-lfu:對全部key采用LFU淘汰算法;

  • LRU

    volatile-lru:從設置了過期時間的數據集中,選擇最近最久未使用的數據釋放;
    allkeys-lru:從數據集中選擇最近最久未使用的數據釋放;

Redis數據固化方式

  • RDB快照方式

    手動方式:
    
                  save:阻塞當前Redis服務器,直到RDB過程完成為止;
    
          自動方式:
    
                   bgsave:fork子進程,持久化過程由子進程負責,完成后自動結束;
    
          配置項:save m n,m秒存在n次寫入,觸發bgsave  ;
    

    優點:

    對Redis性能影響低,二進制壓縮文件體積小,數據恢復塊;
    

    ** 缺點:**

    有數據丟失可能,備份文件版本兼容問題;
    

    ** 過程如圖:**

圖片* AOF快照方式

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

圖片

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

過程如圖:

圖片

Redis重啟恢復過程:

圖片

注意:重啟的過程中需要注意:如果開啟RDB模型,未開啟AOF模式,而在重啟的時候開啟AOF模式,這是RDB****的數據就會覆蓋掉。

Redis可靠性保障

  • 主從模式
    啟動時,全量同步Slave。增量同步,運行ID(Master啟動時生成),同步給Slave,通過復制偏移量確定具體同步位置;
    

具體同步過程如下圖所示:

圖片

  • 哨兵模式
    不斷地檢查Master和Slave是否運作正常,發現故障通知管理員和客戶端,自動主從切換,更新配置信息,客戶端應用初始化時連接Sentinel獲取節點信息;
    

哨兵模式架構:

圖片

  • 集群模式

    無需Sentinel哨兵,支持水平擴容,自動遷移。

圖片

缺點:

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

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7604

    瀏覽量

    136692
  • 數據存儲
    +關注

    關注

    5

    文章

    970

    瀏覽量

    50894
  • 數據庫
    +關注

    關注

    7

    文章

    3794

    瀏覽量

    64362
收藏 人收藏

    評論

    相關推薦

    如何使用Rust連接Redis

    Redis是一款快速、開源、鍵值存儲數據庫,被廣泛應用于緩存、發布/訂閱系統、定時任務等場景中。Rust提供了很多Redis的客戶端庫,本教程將會介紹如何使用Rust連接Redis,以
    的頭像 發表于 09-19 16:22 ?2343次閱讀

    Redis Stream應用案例

    ,還有一個很重要的能力是跨平臺,甚至是作為一個嵌入式的存儲系統跑在基于ARM的平臺上,比如作者之前就宣稱,Redis成功的跑在了“樹莓派”上。試想一下,在IoT時代,會有無數隨時隨地可以接入互聯網
    發表于 06-26 17:15

    深入探究Linux的設備樹

    新版本linux設備樹講解!!ppt- 深入探究Linux的設備樹_2017.8.14.pdf
    發表于 07-03 08:03

    深入探究Linux的設備樹

    新版本linux設備樹講解?。pt- 深入探究Linux的設備樹_2017.8.14.pdf
    發表于 07-09 00:15

    redis概述

    REmote DIctionary Server(Redis)是一個基于key-value鍵值對的持久化數據庫存儲系統。redis和大名鼎鼎的Memcached緩存服務軟件很像,但是redis
    發表于 07-17 07:38

    如何使得redis中的數據不再有

    ,原因是redis的持久化功能導致的,所謂的持久化就是redis在系統關閉的時候把數據存儲到硬盤中,在下一次啟動的時候,在從硬盤恢復到redis中,
    發表于 11-05 08:50

    電子狗工作原理深入探究

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

    簡要分析Redis的特性

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

    通過講述Redis的數據結構和主要命令對Redis的基本能力進行直觀介紹

    本文將從Redis的基本特性入手,通過講述Redis的數據結構和主要命令對Redis的基本能力進行直觀介紹。之后在性能調優等方面進行更深入的介紹和指導。
    的頭像 發表于 01-25 15:41 ?3959次閱讀

    Redis為什么這么快!深入了解Redis的內存模型!

    Redis是目前最火爆的內存數據庫之一,通過在內存中讀寫數據,大大提高了讀寫速度,可以說Redis是實現網站高并發不可或缺的一部分。
    的頭像 發表于 05-02 16:57 ?4400次閱讀
    <b class='flag-5'>Redis</b>為什么這么快!<b class='flag-5'>深入</b>了解<b class='flag-5'>Redis</b>的內存模型!

    Redis混合存儲產品與架構介紹

    摘要:?簡介 Redis混合存儲實例是阿里云自主研發的完全兼容Redis協議和特性的混合存儲產品。通過將部分冷數據存儲到磁盤,在保證絕大部分
    發表于 08-30 16:09 ?188次閱讀

    關于redis中數據存儲的機制解析

    不同于memcached等完全基于內存的緩存中間件,Redis同時還提供了持久化功能,這也是為什么Redis不僅可以用來做數據緩存還可以用來做數據存儲,服務器節點宕機之后可以通過事先持久化的數據還原數據到某個時間點的狀態。
    發表于 09-02 10:46 ?1124次閱讀
    關于<b class='flag-5'>redis</b>中數據<b class='flag-5'>存儲</b>的機制解析

    探究Redis 性能測試與監控

    很多人在安裝部署好Redis后,就沒有對Rredis的配置和部署等有效性和高可用性進行性能測試,最終導致上線出現緩存穿透、雪崩等現象,導致性能還是有問題,其實做為技術運維人員在部署好Redis后可以
    的頭像 發表于 10-12 09:19 ?1435次閱讀
    <b class='flag-5'>探究</b><b class='flag-5'>Redis</b> 性能測試與監控

    Redis架構演化之路

    這個架構非常簡單,你的業務應用可以把 Redis 當做緩存來使用,從 MySQL 中查詢數據,然后寫入到 Redis 中,之后業務應用再從 Redis 中讀取這些數據,由于 Redis
    的頭像 發表于 08-03 16:54 ?609次閱讀
    <b class='flag-5'>Redis</b>架構演化之路

    redis的原理和使用場景

    、消息隊列、實時分析、排行榜和計數器等場景。本文將詳細介紹Redis的原理和使用場景。 一、Redis的原理 Redis的原理主要包括以下幾個方面: 內存數據庫:Redis是一種內存數
    的頭像 發表于 12-04 16:29 ?594次閱讀
    主站蜘蛛池模板: mxgs-877痉挛媚药按摩| 五月丁香啪啪.| 麻豆影视在线直播观看免费| 国产欧美一本道无码| 吃奶摸下的激烈免费视频| 99re这里只有精品视频| 2020最新国产自产精品| 最近韩国日本免费观看mv免费版| 亚洲精品色情婷婷在线播放| 亚洲 欧洲 国产 日产 综合| 小777论坛| 亚洲AV无码国产精品午夜久久| 先锋影音av最新资源网| 午夜福利理论片高清在线| 午夜一级视频| 亚洲精品日韩在线观看视频| 亚洲色图激情小说| 伊人热| 中文无码字慕在线观看| 717影院理论午夜伦不卡久久| 5580免费午夜福利院| 99久久无码一区人妻A片竹菊| 99热久久这里只精品国产WWW | 美国CERANETWORK超清| 恋老视频 国产国佬| 男人J桶进男人屁股过程| 欧美乱妇15p图| 三级叫床震大尺度视频| 午夜理论在线观看不卡大地影院| 亚洲qingse中文字幕久久| 一级做a爰片久久毛片苍井优| 最新黄色在线| 爱情岛aqdlttv| 国产精品JIZZ视频免费| 久久成人永久免费播放| 女bbbbxxx孕妇| 少妇伦子伦情品无吗| 亚洲精品嫩草研究院久久| 1000视频在线播放| 哒哒哒高清视频在线观看| 国产精品自在在线午夜精品|