01 鍵值數據庫的基本架構

本篇重點:通過SimpleKV瞭解KV數據庫的基本架構

Redis: 鍵值DB

從SimpleKV入手學習Redis

SimpleKV Redis
數據模型 key:value組成的KV鍵值對
key-type: String
value-type: 基本數據類型(int、double等)
KV鍵值對
value-type: String、哈希表、列表、集合等
操作接口 PUT/GET/SCAN/DELETE ..
KV存儲位置 內存 內存
基本組件 訪問框架、索引模塊、操作模塊、存儲模塊 ..
訪問模式 函數庫調用(dll)、網絡框架(Socket)
(RocksDB用函數庫調用,Memcached、Redis用網絡框架)
網絡框架——“單線程、高性能”
索引模塊 哈希表、B+樹、字典等
(Memcached、Redis用哈希表,RocksDB用跳錶)
哈希表
持久化功能 文件形式存儲內存中的KV AOF、RDB

Q-A:

  1. KV保存在內/外存的區別?

    內存:優點——讀寫快,缺點——掉電數據丟失
    外存:優點——避免數據丟失,缺點:慢,速度受限於磁盤

  2. 如何根據不同場景選擇KV的存儲位置?

    緩存場景:要求快速訪問但允許數據偶有丟失——內存

    Memcached/Redis都是內存鍵值DB

  3. 兩種訪問模式——函數庫調用/網絡框架中,網絡框架需要考慮的問題?

    a. 網絡連接的處理(連接/斷開/重連)

    b. 網絡請求的解析(接口)

    c. 數據存取的處理(單/多線程,多進程)——IO模型設計

  4. 索引模塊:Redis採用哈希表作爲索引的原因?

    內存的高性能隨機訪問特性可以很好匹配哈希表O(1)的操作複雜度

  5. 操作的邏輯步驟

    GET/SCAN: 根據Key返回value值
    PUT/DELETE: a. 新寫入/刪除KV
          b. 分配/釋放內存

鍵值數據庫SimpleKV的基本架構

圖片來源於極客時間專欄《Redis核心技術與實戰》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章