[Redis 基礎知識] Redis List 型別常用命令

DavidH發表於2024-11-23

(1)簡介

Redis中的List型別是一個雙端連結串列結構 , 類似於Java 中的 LinkedList。可以在其頭部(左邊)或尾部(右邊)進行新增和刪除操作 , 一個列表最多可以包含 2 ^ 32 -1個元素(超40億)

(2)常用命令

命令 含義
lpush key element [element ...] 將一個或多個值插入到列表的頭部(從左側新增)
rpush key element [element ...] 將一個或多個值插入到列表的尾部(從右側新增)
lpushx key element [element ...] 將一個或多個值插入到已存在的列表的頭部
若列表不存在 , 操作無效
rpushx key element [element ...] 將一個或多個值插入到已存在的列表的尾部
若列表不存在 , 操作無效
llen key 獲取列表長度
lindex key index 透過索引獲取列表中的元素
lrange key start stop 獲取列表指定範圍內的元素(包括start和stop) , 常用於分頁
lpop key 移除並獲取第一個元素(從左側彈出一個元素)
rpop key 移除並獲取最後一個元素(從右側彈出一個元素)
blpop key [key ...] timeout 移除並獲取第一個元素
如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止
brpop key [key ...] timeout 移除並獲取最後一個元素
如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止
ltrim key start stop 對一個列表進行修剪
只保留指定區間內的元素(包括start和stop)
lset key index element 透過索引設定列表元素的值
``linsert key BEFORE AFTER pivot element``
rpoplpush source destination 刪除並返回source列表的右側一個元素
並將其存入destination列表的左側
brpoplpush source destination timeout 刪除並返回source列表的右側一個元素
並將其存入destination列表的左側
如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止
lrem key count value 移除列表元素

(3)列表的索引

列表的索引分為 正向索引 和 反向索引

正向索引從 0 開始 , 0 表示第一個元素 , 1 表示第二個元素 , 以此類推

反向索引從 -1 開始 , -1 表示最後一個索引 , -2 表示倒數第二個索引 , 以此類推

(4)應用場景

  • 對資料量大的集合資料刪減

列表資料顯示、關注列表、粉絲列表、留言評價、分頁、新聞(Top5)等

利用lrange實現分頁功能 , 例如在部落格系統中, 每篇博文的評論可以存入一個單獨的list中

  • 任務佇列

相關文章