Redis五種數據結構及使用場景

本文原創文章,轉載註明出處,博客地址 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
相關文章
相關標籤/搜索