Redis學習(六) 列表型別(List)

2021-09-11 19:53:28 字數 1450 閱讀 7182

列表型別可以儲存乙個有序的字串列表,常用的操作是向列表的兩端新增元素,或者獲取列表的乙個片段;

與雜湊型別最多能容納的字段數量相同,乙個列表型別鍵最多能容納2^32-1個元素。

優點:列表型別的內部是使用(double linked list)雙向鍊錶實現的,所以像列表兩端新增元素的時間複雜度為o(1),獲取越接近兩端的元素越快。(意味著即使列表中的資料量再大,獲取前十條資料也是非常快的)

缺點:使用的鍊錶的代價是通過索引訪問元素會非常的緩慢。

社交網路中的新鮮事:即使新鮮事的總數達到了幾千萬條,獲取其中最新的100條資料也是非常快速的。

記錄日誌:可以保證加入新日誌的速度不會受到已有日誌數量的影響。

用作訊息佇列:點此進入

1.像列表兩端新增元素

lpush key value [ value... ]

rpush key value [value ...]

2.從列表兩端彈出元素

lpop key 

rpop key

3.獲取列表中元素的個數(時間複雜度為o(1))

llen key

4.獲取列表片段

lrange key start end

注:在redis中,使用0表示從左邊數第乙個元素,使用-1表示從右邊數第乙個元素。所以lrange key 0 -1 表示獲取列表中所有元素。

5.刪除列表中指定的值

lrem key count value

(1)當count>0時,從列表左邊開始刪除前count個值為value的元素;

(2)當count<0時,從列表右邊開始刪除前|count|個值為value的元素;

(3)當count=0時,刪除列表中所有值為value的元素。

6.獲得/設定指定索引出的元素值

lindex key value

lset key index value

7.保留指定範圍的列表片段(刪除指定索引範圍之外的所有元素)

ltrim key start end

8.插入元素

linsert key before|after pivot value  

在列表中從左到右查詢出值為pivot的元素,然後根據before或者after決定插入到該元素的前邊還是後邊,返回插入後列表中元素的個數。

9.將元素從乙個列表轉到另乙個列表

ppoplpush source destination

從source列表的右邊彈出元素並將該元素lpush到destination列表的左邊,返回這個元素的值。

Redis 學習筆記 3 4 列表型別

列表型別 list 可以儲存乙個有序的字串列表,常用的操作是向列表的兩端新增元素,或者獲得列表的某乙個片段。它的內部實現是雙向鍊錶,向頭尾兩端處理元素特別方便。適合的場景像是社交 的新鮮事,日誌記錄,關心尾部節點,不擔心舊有記錄的刪除調整情況。redis 的列表型別還可以用來實現佇列,並且支援阻塞式...

Css基礎學習(六) 列表

瀏覽任何基於web標準建立的 資源,幾乎都可以看到乙個導航列表 乙個外部鏈結列表 有的還有按鈕列表和陣列列表。設計開始階段就採用簡單的列表可保證設計的靈活性和各種功能,並且可以在某些瀏覽場景下簡化設計。1 list style type屬性 list style type屬性可以從多個可能的列表專案...

Redis學習(十) 列表 List

redis列表是簡單的字串列表,按照插入順序排序。你可以新增乙個元素到列表的頭部 左邊 或者尾部 右邊 乙個列表最多可以包含 232 1 個元素 4294967295,每個列表超過40億個元素 redis 127.0.0.1 6379 lpush runoobkey redis integer 1r...