新聞中心
Redis 的數(shù)據(jù)類型中,集合和有序集合是兩個被比較多的對象,在使用的時候也非常具有代表性。下面是Redis 常用的集合(SET)和有序集合(SORTED set)兩者的簡明對比。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了吳中免費(fèi)建站歡迎大家使用!
#### 一、存儲結(jié)構(gòu)
1. 集合(Set): 集合中的每個元素都是一個字符串,通常把它存儲為一個哈希表,哈希表的空間開銷是比較大的,但是插入和刪除中間元素具有非常低的復(fù)雜度 O(1)。
2. 有序集合(sorted set): 有序集合主要是把集合中的字符串和一個浮點(diǎn)數(shù)值相關(guān)聯(lián)起來,然后根據(jù)這個浮點(diǎn)數(shù)值進(jìn)行從小到大的排序。除了字符串的比較之外,有序集合還可以記錄和排序另外一系列元素,比如帶有時間戳的消息記錄,帶有分值的排行榜等等。
#### 二、操作區(qū)別
1. 集合(Set): Set 數(shù)據(jù)結(jié)構(gòu)具有以下常用操作:添加元素和刪除元素,求交/并/差集合,和查看某個元素是否存在于該集合中。
2. 有序集合(sorted set): 有序集合數(shù)據(jù)結(jié)構(gòu)具有以下常用操作:添加元素和刪除元素,查詢某元素的分值或者添加分值,獲取指定范圍的元素,查看某個元素是否存在于該集合等等。
#### 三、空間復(fù)雜度
1. 集合(Set): 對于空間復(fù)雜度,每個元素都要有一個鍵,因此Set 的空間復(fù)雜度有點(diǎn)高,比有序集合慢幾倍。
2. 有序集合(sorted set): 有序集合的分值保存在壓縮列表中,因此有序集合的空間復(fù)雜度要比集合低很多,能夠減少集合多倍的存儲空間。
#### 四、使用場景
1. 集合(Set): 集合最適合的場景就是存儲一些不重復(fù)且沒有順序的數(shù)據(jù),比如去重,成員管理等。
2. 有序集合(sorted set): 有序集合最適合存儲一些有層次關(guān)系,需要對元素進(jìn)行排序的場景,比如排行榜,有序的消息記錄等。
綜上,集合(Set)主要用于去重、成員管理等不需要保證順序的場景,而有序集合(sorted set)則是有層次關(guān)系、需要保證順序的場景,如排行榜,消息記錄等。而且它們的插入、刪除、查詢復(fù)雜度也不一樣,有序集合更為節(jié)省空間、優(yōu)化了性能。
下面是相關(guān)代碼:
// 添加元素到集合
sadd myset element1 element2 element3
// 添加元素到有序集合
zadd myzset 1 element1 2 element2 3 element3
// 求交集
sinter myset myotherset
// 求有序集合交集
zinterstore dest 2 myzset myotherzset
//查看某個元素是否存在于該集合
sismember myset element1
//查看某個元素的分值
zscore myzset element1
//查詢指定范圍的元素
zrange myzset 0 10 // 從小到大
zrevrange myzset 0 10 // 從大到小
成都網(wǎng)站營銷推廣找創(chuàng)新互聯(lián),全國分站站群網(wǎng)站搭建更好做SEO營銷。
創(chuàng)新互聯(lián)(www.cdcxhl.com)四川成都IDC基礎(chǔ)服務(wù)商,價格厚道。提供成都服務(wù)器托管租用、綿陽服務(wù)器租用托管、重慶服務(wù)器托管租用、貴陽服務(wù)器機(jī)房服務(wù)器托管租用。
本文題目:Redis集合與有序集合簡明對比(redis集合和有序集合)
網(wǎng)站鏈接:http://fisionsoft.com.cn/article/djidgsj.html


咨詢
建站咨詢
