Redis五種資料結構及使用場景

TomorrowWu發表於2017-09-05

本文原創文章,轉載註明出處,部落格地址 https://segmentfault.com/u/to… 第一時間看後續精彩文章。覺得好的話,順手分享到朋友圈吧,感謝支援。

五種資料結構

型別 簡介 特性 場景
String(字串) 二進位制安全 可以包含任何資料,比如jpg圖片或者序列化的物件,一個鍵最大能儲存512M
Hash(字典) 鍵值對集合,即程式語言中的Map型別 適合儲存物件,並且可以像資料庫中update一個屬性一樣只修改某一項屬性值(Memcached中需要取出整個字串反序列化成物件修改完再序列化存回去) 儲存、讀取、修改使用者屬性
List(列表) 連結串列(雙向連結串列) 增刪快,提供了操作某一段元素的API 1,最新訊息排行等功能(比如朋友圈的時間線) 2,訊息佇列
Set(集合) 雜湊表實現,元素不重複 1,新增、刪除,查詢的複雜度都是O(1) 2,為集合提供了求交集、並集、差集等操作 1,共同好友 2,利用唯一性,統計訪問網站的所有獨立ip 3,好用推薦時,根據tag求交集,大於某個閾值就可以推薦
Sorted Set(有序集合) 將Set中的元素增加一個權重引數score,元素按score有序排列 資料插入集合時,已經進行天然排序 1,排行榜 2,帶權重的訊息佇列

其他功能使用場景

型別 特性 場景
訂閱-釋出系統 釋出與訂閱,可以對某一個key值進行訊息釋出及訊息訂閱,當一個key值進行了訊息釋出後,所有訂閱它的客戶端都會收到訊息 用作實時訊息系統,比如普通的即時聊天,群聊等功能
事務 1,Redis的Transactions提供的並不是嚴格的ACID(原子性,一致性,隔離性,永續性)的事務,但是提供了基本的命令打包執行的功能 2,Watch功能,對一個key進行watch,再執行Transactions,在這個過程中,如果這個Watched的值進行了修改,Transactions會發現並拒絕執行
過期 設定key的過期時間,過期後該資料自動被清除 登入session或token

相關文章