Redis五種數(shù)據(jù)結(jié)你知道幾種?
本文轉(zhuǎn)載自微信公眾號「UP技術(shù)控」,作者conan5566 。轉(zhuǎn)載本文請聯(lián)系UP技術(shù)控公眾號。
1、String
這是最簡單的Redis類型。如果只使用這種類型,Redis就像一個(gè)可持久化的Memcached服務(wù)器。
2、List
Redis的List是基于雙向鏈表實(shí)現(xiàn)的,可以支持反向查找和遍歷。
常用案例:聊天系統(tǒng)、社交網(wǎng)絡(luò)中獲取用戶最新發(fā)表的帖子、簡單的消息隊(duì)列、新聞的分頁列表、博客的評論系統(tǒng)。
3、Hash
Hash是一個(gè)String類型的field和value之間的映射表,請見下圖,類似于.NET中的Hashtable和Dictionary。主要用來存儲對象,可以避免序列化的開銷和并發(fā)修改控制的問題。
4、Set
Set也是一個(gè)列表,不過它的特殊之處在于它是可以自動(dòng)排重的:當(dāng)需要存儲一個(gè)列表數(shù)據(jù),而又不希望出現(xiàn)重復(fù)的時(shí)候,Set是一個(gè)很好的選擇(比如ID的集合)。并且Set提供了判斷某個(gè)成員是否在一個(gè)Set集合內(nèi)的接口,這也是List所沒有的。
5、Sorted Set
Sorted Set和Set的使用場景類似,區(qū)別是Sorted Set會(huì)根據(jù)提供的score參數(shù)來進(jìn)行自動(dòng)排序。當(dāng)你需要一個(gè)有序的并且不重復(fù)的集合列表,那么就可以選擇Sorted Set數(shù)據(jù)結(jié)構(gòu)。常用案例:游戲中的排行榜。