五種數(shù)據(jù)結(jié)構(gòu)本文原創(chuàng)文章,轉(zhuǎn)載注明出處,博客地址 https://segmentfault.com/u/to... 第一時間看后續(xù)精彩文章。覺得好的話,順手分享到朋友圈吧,感謝支持。
類型 | 簡介 | 特性 | 場景 |
---|---|---|---|
String(字符串) | 二進(jìn)制安全 | 可以包含任何數(shù)據(jù),比如jpg圖片或者序列化的對象,一個鍵最大能存儲512M | --- |
Hash(字典) | 鍵值對集合,即編程語言中的Map類型 | 適合存儲對象,并且可以像數(shù)據(jù)庫中update一個屬性一樣只修改某一項(xiàng)屬性值(Memcached中需要取出整個字符串反序列化成對象修改完再序列化存回去) | 存儲、讀取、修改用戶屬性 |
List(列表) | 鏈表(雙向鏈表) | 增刪快,提供了操作某一段元素的API | 1,最新消息排行等功能(比如朋友圈的時間線) 2,消息隊(duì)列 |
Set(集合) | 哈希表實(shí)現(xiàn),元素不重復(fù) | 1,添加、刪除,查找的復(fù)雜度都是O(1) 2,為集合提供了求交集、并集、差集等操作 | 1,共同好友 2,利用唯一性,統(tǒng)計(jì)訪問網(wǎng)站的所有獨(dú)立ip 3,好用推薦時,根據(jù)tag求交集,大于某個閾值就可以推薦 |
Sorted Set(有序集合) | 將Set中的元素增加一個權(quán)重參數(shù)score,元素按score有序排列 | 數(shù)據(jù)插入集合時,已經(jīng)進(jìn)行天然排序 | 1,排行榜 2,帶權(quán)重的消息隊(duì)列 |
類型 | 特性 | 場景 |
---|---|---|
訂閱-發(fā)布系統(tǒng) | 發(fā)布與訂閱,可以對某一個key值進(jìn)行消息發(fā)布及消息訂閱,當(dāng)一個key值進(jìn)行了消息發(fā)布后,所有訂閱它的客戶端都會收到消息 | 用作實(shí)時消息系統(tǒng),比如普通的即時聊天,群聊等功能 |
事務(wù) | 1,Redis的Transactions提供的并不是嚴(yán)格的ACID(原子性,一致性,隔離性,持久性)的事務(wù),但是提供了基本的命令打包執(zhí)行的功能 2,Watch功能,對一個key進(jìn)行watch,再執(zhí)行Transactions,在這個過程中,如果這個Watched的值進(jìn)行了修改,Transactions會發(fā)現(xiàn)并拒絕執(zhí)行 | --- |
過期 | 設(shè)置key的過期時間,過期后該數(shù)據(jù)自動被清除 | 登錄session或token |
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/17628.html
摘要:前言等簡單高效的解決了高并發(fā)場景下的一系列問題,并很大程度的解放了持久化的業(yè)務(wù)壓力。 前言 redis等nosql簡單高效的解決了高并發(fā)場景下的一系列問題,并很大程度的解放了持久化DB的業(yè)務(wù)壓力。 實(shí)現(xiàn) 基于redis字符串string類型的簡單緩存實(shí)現(xiàn) 基于redis列表list類型的簡單隊(duì)列實(shí)現(xiàn) 基于redis字符串setnx的悲觀鎖實(shí)現(xiàn) 基于redis事務(wù)的樂觀鎖實(shí)現(xiàn) 基于re...
閱讀 3615·2021-11-23 09:51
閱讀 1487·2021-11-04 16:08
閱讀 3558·2021-09-02 09:54
閱讀 3625·2019-08-30 15:55
閱讀 2604·2019-08-30 15:54
閱讀 965·2019-08-29 16:30
閱讀 2054·2019-08-29 16:15
閱讀 2326·2019-08-29 14:05