如何系統的學習Redis

如何系統的學習Redis

Redis是什麼

Redis是一種開放原始碼(BSD許可)的記憶體資料結構儲存,用作資料庫,快取和訊息代理。它支援資料結構如字串,雜湊,列表,集合,帶範圍查詢的排序集合,點陣圖,hyperloglogs,帶有半徑查詢和流的地理空間索引。 Redis內建有複製,Lua指令碼,LRU逐出,事務和不同級別的磁碟持久化,並透過Redis Sentinel和Redis Cluster自動分割槽提供了高可用性。

如何系統地學習Redis

系統的學習Redis分兩個方面,一是瞭解Redis各關鍵技術的原理,二是學習如何應用Redis開發應用程式。

如何學習Redis的關鍵技術原理

從Redis的高效能、高可靠、高可擴充套件來說。高效能包括執行緒模型、資料結構、持久化、網路框架。高可靠包括主從複製、哨兵機制。高可擴充套件包括資料分片、負載均衡。

包括以下概念:

Redis實現了自己的IO多路複用執行緒模型。

支援的strings,hashset,list,set,sortedlist資料型別有自己的儲存結構。

持久化:持久化是最簡單的高可用方法(有時甚至不被歸為高可用的手段),主要作用是資料備份,即將資料儲存在硬碟,保證資料不會因程序退出而丟失。

複製:複製是高可用 Redis 的基礎,哨兵和叢集都是在複製基礎上實現高可用的。

複製主要實現了資料的多機備份,以及對於讀操作的負載均衡和簡單的故障恢復。缺陷:故障恢復無法自動化;寫操作無法負載均衡;儲存能力受到單機的限制。

哨兵:在複製的基礎上,哨兵實現了自動化的故障恢復。缺陷:寫操作無法負載均衡;儲存能力受到單機的限制。

叢集:透過叢集,Redis 解決了寫操作無法負載均衡,以及儲存能力受到單機限制的問題,實現了較為完善的高可用方案。

如何使用Redis開發應用程式

Redis應用程式開發分為應用場景驅動和典型案例驅動兩種。