3 回答

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個贊
相同點(diǎn):
(1)二者都是有序的。
(2)二者都可以獲得某一范圍的元素。
不同點(diǎn):
(1)列表類型是通過鏈表實(shí)現(xiàn)的,獲取靠近兩端的數(shù)據(jù)速度極快,而當(dāng)元素增多后,訪問中間數(shù)據(jù)的速度會較慢,所以它更加適合實(shí)現(xiàn)如“新鮮事”或“日志”這樣很少訪問中間元素的應(yīng)用。
(2)有序集合類型是使用散列表和跳躍表(Skip list)實(shí)現(xiàn)的,所以即使讀取位于中間部分的數(shù)據(jù)速度也很快(時(shí)間復(fù)雜度是O(log(N)))。
(3)列表中不能簡單地調(diào)整某個元素的位置,但是有序集合可以(通過更改這個元素的分?jǐn)?shù))。
(4)有序集合要比列表類型更耗費(fèi)內(nèi)存。有序集合類型算得上是 Redis的5種數(shù)據(jù)類型中最高級的類型了,在學(xué)習(xí)時(shí)可以與列表類型和集合類型對照理解。

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個贊
Redis有序集合類似Redis集合存儲在設(shè)定值唯一性。不同的是,一個有序集合的每個成員帶有分?jǐn)?shù),用于以便采取有序set命令,從最小的到最大的分?jǐn)?shù)有關(guān)。
Redis 有序set添加,刪除和測試中的O(1)的存在成員(固定時(shí)間,無論里面包含的元素集合的數(shù)量)。列表的最大長度為232- 1元素(4294967295,超過4十億每個元素的集合)。
例子
redis 127.0.0.1:6379> ZADD tutorials 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD tutorials 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE tutorials 0 10 WITHSCORES
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個贊
數(shù)組中的數(shù)據(jù)是可以隨便排的;
這里的有序不是指的內(nèi)容的有序,而是存儲位置的有序,比如一個數(shù)組int a[10];
那么對于存儲的位置,a[0]必然在a[1]之前,a[8]必然在a[4]之后,這就是有序的意思
- 3 回答
- 0 關(guān)注
- 747 瀏覽
添加回答
舉報(bào)