Redis 入門 - 簡介

IT规划师發表於2024-09-04

Redis是Remote Dictionary Server的縮寫,可以翻譯成遠端字典服務。Redis是用C語言編寫的開源專案。

Redis 最主要的特點就是高效能,對於簡單的鍵值讀取速度可以達到100000次/s,在理想情況下簡單的鍵值寫入速度可以達到80000次/s。基於此特性Redis主要用來做快取系統或者記憶體資料儲存。

Redis支援豐富的資料型別,包括字串(String)、雜湊(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)、流(Stream)、點陣圖(Bitmap)、位域(Bitfield)以及地理空間索引(GeoSpatial)等。如此豐富的資料型別可以靈活應用於各種場景,並且取得高效的資料存取和操作效率。

Redis還有許多高階特性:

① 釋出/訂閱(Pub/Sub):支援釋出/訂閱模式,允許客戶端訂閱頻道並接收訊息,用於實現實時訊息推送和廣播。
② 事務:支援 MULTI、EXEC、WATCH 和 DISCARD 命令,允許一組命令作為一個事務執行,確保原子性。
③ 持久化、
a) RDB(Redis Database Backup):週期性地將資料庫快照儲存到磁碟,用於資料恢復。
b) AOF(Append-Only File):記錄每個寫操作到日誌檔案,提供更高的資料恢復精度。
c) 混合持久化:結合 RDB 和 AOF 的優點,提供更高效的持久化方案。
④ 叢集
a) 主從模式:主節點負責寫操作,從節點負責讀取操作,實現讀寫分離和基本的故障恢復。
b) 哨兵模式:用於提供高可用性和自動故障轉移,監控主節點和從節點的狀態,當主節點故障時自動切換到從節點成為新的主節點。
c) 分片模式:透過資料分片將資料分佈在多個節點上,提高效能和可擴充套件性,每個節點儲存一個分割槽資料,達到支援大規模的資料處理
⑤ Lua 指令碼:允許使用 Lua 指令碼在 Redis 伺服器端執行原子操作,減少了客戶端和伺服器之間的往返次數。
⑥ 記憶體管理:支援多種記憶體管理策略,如 LRU(Least Recently Used) 和 LFU(Least Frequently Used),用於控制記憶體使用和資料淘汰策略
⑦ 模組支援:允許透過 Redis Modules 擴充套件 Redis 的功能,引入新的資料型別和命令,滿足特定應用需求

這些高階特性可以支援更復雜的業務需求,滿足更高的定製化需求。

後面我們將繼續從以下5個方面繼續學習:
① 安裝:包括Windows、Linux以及Docker三種環境詳細安裝過程。
② 客戶端工具:選擇一款客戶端工具。
③ 基礎指令學習:學習一些常用指令。
④ C#/.NET實戰:選擇一款C#/.NET客戶端庫進行編碼實戰。
⑤ C#/.NET封裝:對客戶端庫進行二次封裝,方便後期使用。

注:測試方法程式碼以及示例原始碼都已經上傳至程式碼庫,有興趣的可以看看。https://gitee.com/hugogoos/Planner

相關文章