Redis入門指南 閱讀筆記 (簡單整理)
-
Redis核心資料結構:
-
String (字串/二進位制串)
-
最基本的資料型別
-
最大大小為512MB
-
所有的資料型別的基礎都是二進位制串
-
-
HashTable (散列表)
-
欄位到二進位制串的對映, 其中二進位制串不可巢狀其他型別
-
散列表的最大大小為
2^32-1
個元素 -
一般用於存放程式碼中的結構體物件, 可以保證對每個成員的原子操作
-
-
List (列表)
-
內部結構為雙向連結串列, 頭尾操作效率高, 隨機訪問效率低
-
最長上限也是
2^32-1 (4,294,967,295)
-
用於實現佇列或者棧
-
-
Set (集合/無序集合)
-
是鍵值對中值為空的散列表
-
上限
2^32-1
-
用於進行集合操作, 以及判斷元素是否存在
-
-
SortedSet (有序集合)
-
由跳躍表, 散列表結合儲存的資料模式. 其基於每個物件的
score
進行排序, 支援score
重複 -
對於有序集合的隨機訪問效率較列表更高, 可以通過調整元素
score
大小控制元素位置
-
-
-
Redis執行緒模型: 單執行緒模型
-
Redis鍵值的一般命名格式:
<物件型別>:<物件id>:<物件屬性>
-
Redis的一般功能:
-
資料庫
-
快取
-
訊息佇列
-
-
Redis的進階功能:
-
事務:
MULTI, EXEC, WATCH
三個命令 -
過期時間:
EXPIRE, TTL, PERSIST
-
排序:
使用有序集合, SORT, BY, GET, STORE
-
訊息通知:
SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE
-
對於記憶體消耗的優化:
使用較短的鍵值, 進行Redis內部編碼的設定
-
Redis指令碼:
Lua指令碼
, 通過綜合基本命令形成自定義的命令, 其執行是原子性的 -
記憶體資料持久化:
RDB
備份資料本身;AOF
備份命令操作
-
-
Redis叢集:
-
簡單叢集: 只是簡單的讀寫分離, 通過RDB進行復制初始化, 通過AOF進行請求的非同步同步. 出現宕機需要手動處理
-
哨兵叢集: 將簡單叢集中的宕機的手動處理通過哨兵完成, 進行自動的節點角色轉換, 以及資料的同步
-
Redis-cluster叢集: 解決主從複製的橫向拓展問題. 使用雜湊槽進行資料的分配, 以和單體相近的效能適應大資料量環境
-
-
Redis安全:
-
Redis需要部署在可信環境, 不能直接從外網訪問, 需通過軟體進行隔離
-
對Redis設定密碼進行授權訪問
-
對於Redis的命令進行重新命名以及禁用, 限制訪問來源以及訪問許可權
-
-
Redis伺服器與客戶端的交流協議:
-
簡單協議: 直接是命令列的輸入進行通訊
-
unified request protocol
-