Redis是一個開源的Key-Value儲存,但又不僅僅是Key-Value儲存,用官網上的話來說,Redis是一個數據結構儲存,可用作資料庫、快取和訊息中介軟體。Redis具有如下特點:
速度快
豐富的資料結構,除String之外,還有List、Hash、Set、Sorted Set
單執行緒,避免了執行緒切換和鎖的效能消耗
原子操作
可持久化(RDB與AOF)
釋出/訂閱
支援Lua指令碼
分散式鎖
事務
主從複製與高可用(Redis Sentinel)
叢集(3.0版本以上)
二、Redis 資料結構
1、String
這是最簡單的Redis型別。
2、List
Redis的List是基於雙向連結串列實現的,可以支援反向查詢和遍歷。
3、Hash
Hash是一個String型別的field和value之間的對映表,主要用來儲存物件,可以避免序列化的開銷和併發修改控制的問題。
4、Set
Set也是一個列表,不過它的特殊之處在於它是可以自動排重的:當需要儲存一個列表資料,而又不希望出現重複的時候,Set是一個很好的選擇(比如ID的集合)。並且Set提供了判斷某個成員是否在一個Set集合內的介面,這也是List所沒有的。
5、Sorted Set
Sorted Set和Set的使用場景類似,區別是Sorted Set會根據提供的score引數來進行自動排序。當你需要一個有序的並且不重複的集合列表,那麼就可以選擇Sorted Set資料結構。常用案例:遊戲中的排行榜。
Redis是一個開源的Key-Value儲存,但又不僅僅是Key-Value儲存,用官網上的話來說,Redis是一個數據結構儲存,可用作資料庫、快取和訊息中介軟體。Redis具有如下特點:
速度快
豐富的資料結構,除String之外,還有List、Hash、Set、Sorted Set
單執行緒,避免了執行緒切換和鎖的效能消耗
原子操作
可持久化(RDB與AOF)
釋出/訂閱
支援Lua指令碼
分散式鎖
事務
主從複製與高可用(Redis Sentinel)
叢集(3.0版本以上)
二、Redis 資料結構
1、String
這是最簡單的Redis型別。
2、List
Redis的List是基於雙向連結串列實現的,可以支援反向查詢和遍歷。
3、Hash
Hash是一個String型別的field和value之間的對映表,主要用來儲存物件,可以避免序列化的開銷和併發修改控制的問題。
4、Set
Set也是一個列表,不過它的特殊之處在於它是可以自動排重的:當需要儲存一個列表資料,而又不希望出現重複的時候,Set是一個很好的選擇(比如ID的集合)。並且Set提供了判斷某個成員是否在一個Set集合內的介面,這也是List所沒有的。
5、Sorted Set
Sorted Set和Set的使用場景類似,區別是Sorted Set會根據提供的score引數來進行自動排序。當你需要一個有序的並且不重複的集合列表,那麼就可以選擇Sorted Set資料結構。常用案例:遊戲中的排行榜。