類型 | 簡介 | 特性 | 場景 |
---|---|---|---|
Stringjava (字符串)數據庫 |
二進制安全 | 能夠包含任何數據,好比jpg圖片或者序列化的對象,一個鍵最大能存儲512M | -- |
Hash編程 (字典)安全 |
鍵值對集合,即編程語言中的Map類型 | 適合存儲對象,而且能夠像數據庫中update一個屬性同樣只修改某一項屬性值(Memcached中須要取出整個字符串反序列化成對象修改完再序列化存回去) | 存儲、讀取、修改用戶屬性 |
Listsession (列表)編程語言 |
鏈表(雙向鏈表)網站 java中的LinkedListspa |
增刪快,提供了操做某一段元素的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 |