Redis基礎篇 01鍵值資料庫基礎架構

2021-10-09 21:48:11 字數 2329 閱讀 2705

1、更好的學習方式

1)先建立起「系統觀」,也就是說,如果我們想要深入理解和優化 redis,就必須要對它的總體架構和關鍵模組有乙個全域性的認知,然後再深入到具體的技術點

2、專欄講解方式

1)通過剖析乙個最簡單 ******kv 鍵值資料庫,來迅速抓住學習和調優 redis 的關鍵

1、******kv 的基本內部架構

1)大體來說,乙個鍵值資料庫包括了訪問框架、索引模組、操作模組和儲存模組四部分

2、可以對資料做什麼操作

1)******kv 支援基本操作增刪改查,即 put、get 和 delete

2)鍵值對儲存在記憶體還是外存,以及它們的優劣

3、可以存哪些資料

1)對於鍵值資料庫而言,基本的資料模型是 key-value 模型

2)「不同鍵值資料庫支援的 key 型別一般差異不大,而 value 型別則有較大差別。例如,memcached 支援的 value 型別僅為 string 型別,而 redis 支援的 value 型別包括了 string、雜湊表、列表、集合等

3)不同 value 型別的實現,不僅可以支撐不同業務的資料需求

4、採用什麼訪問模式

1)訪問模式通常有兩種:一種是通過函式庫呼叫的方式供外部應用使用,另一種是通過網路框架以 socket 通訊的形式對外提供鍵值對操作

2)實際的鍵值資料庫也基本採用上述兩種方式,例如,rocksdb 以動態鏈結庫的形式使用,而 memcached 和 redis 則是通過網路框架訪問

5、如何定位鍵值對的位置

1)當 ******kv 解析了客戶端發來的請求,知道了要進行的鍵值對操作,此時,******kv 需要查詢所要操作的鍵值對是否存在,這依賴於鍵值資料庫的索引模組

2)索引的作用是讓鍵值資料庫根據 key 找到相應 value 的儲存位置,進而執行操作

3)不同鍵值資料庫採用的索引並不相同,例如,memcached 和 redis 採用雜湊表作為 key-value 索引,而 rocksdb 則採用跳表作為記憶體中 key-value 的索引

4)對於 redis 而言,通過索引找到 key對應的value後,仍然需要從 value 的複雜結構(例如集合和列表)中進一步找到我們實際需要的資料,這個操作的效率本身就依賴於它們的實現結構

6、不同操作的具體邏輯是怎樣的

1)get/scan:根據 value 的儲存位置返回 value 值

2)put:新建或修改,為新建鍵值對分配記憶體空間

3)「delete:刪除,釋放相應的記憶體空間

7、如何實現重啟後快速提供服務

1)******kv 只需要考慮何時將記憶體中的鍵值資料儲存到檔案中,有兩種方式。

2)一種方式是,對於每乙個鍵值對,******kv 都對其進行落盤儲存, 該方式更加可靠,但是,因為每次都要寫盤,******kv 的效能會受到很大影響,

3)另一種方式是,******kv 只是周期性地把記憶體中的鍵值資料儲存到檔案中,這樣可以避免頻繁寫盤操作的效能影響。但是有資料丟失的風險。

1、構造簡單鍵值資料庫 ******kv

1)前面兩步我們是從應用的角度進行設計的,也就是應用視角

2)後面四步其實就是 ******kv 完整的內部構造

2、從 ******kv 到 redis 的演進

1)從 ******kv 到 redis 的演進 圖

2)redis 主要通過網路框架進行訪問,而不再是動態庫了

3)redis 資料模型中的 value 型別很豐富,因此也帶來了更多的操作介面

4)redis 的持久化模組能支援兩種方式:日誌(aof)和快照(rdb),它們各有優劣

5)******kv 是個簡單的單機鍵值資料庫,但是,redis 支援高可靠集群和高可擴充套件集群,因此,redis 中包含了相應的集群功能支撐模組

1、鍵值資料庫基礎架構

[1] 蔣德鈞. redis核心技術與實戰[m]. 極客時間, 2020.

[2] 取自《redis核心技術與實戰》專欄

Mysql基礎篇 認識資料庫01

資料庫 database,簡稱db 概念 長期存放在計算機內,有組織,可共享的大量資料的集合,是乙個資料 倉庫 作用 儲存,並能安全管理資料 如 增刪改查等 減少冗餘.官網 簡介 mysql是乙個關係型資料庫管理系統rdbms relational database management syste...

高效能鍵值對資料庫 Redis

支援持久化,可以進行資料災難恢復 string 型別資料的基本操作 新增 修改多個資料 獲取多個資料 獲取資料 刪除資料 判定性新增資料 獲取資料字元個數 字串長度 追加資訊到原始資訊後部 如果原始資訊存在就追加,否則新建 hash 型別資料的基本操作 新增 修改多個資料 獲取資料 獲取多個資料 h...

Redis 模擬簡單鍵值資料庫

redis核心技術與實戰 01 目錄 1 可以儲存那些資料 redis的value可以儲存豐富的 資料型別 2 可以對資料做什麼操作 redis提供了基本的增刪改查等和基於複雜value型別操作介面 3 如何儲存鍵值對 記憶體還是外存 redis以記憶體為主儲存鍵值對,但存在一旦掉電,資料就會全部消...