List類型是一個鏈表結構的集合,其主要功能有push、pop、獲取元素等。更詳細的說,List類型是一個雙端鏈表的節后,我們可以通過相關的操作進行集合的頭部或者尾部添加和刪除元素,List的設計非常簡單精巧,即可以作為棧,又可以作為隊列,滿足絕大多數的需求。是一個存儲字符串類型的集合按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)一個列表最多可以包含 232 - 1 個元素 (4294967295, 每個列表超過40億個元素) 類似JAVA中的LinkedList
list類型的常見命令:
賦值
LPUSH key value1 [value2] :將一個或多個值插入到列表頭部(從左側添加)
RPUSH key value1 [value2] :在列表中添加一個或多個值(從右側添加)
LPUSHX key value :將一個值插入到已存在的列表頭部。如果列表不在,操作無效
RPUSHX key value :一個值插入已存在的列表尾部(最右邊)。如果列表不在,操作無效。
取值
LLEN key :獲取列表長度
LINDEX key index :通過索引獲取列表中的元素
LRANGE key start stop :獲取列表指定范圍內的元素
描述: 返回列表中指定區間內的元素,區間以偏移量 START 和 END 指定。
其中 0 表示列表的第一個元素, 1 表示列表的第二個元素,以此類推。
也可以使用負數下標,以 -1 表示列表的最后一個元素, -2 表示列表的倒數第二個元素,以此類推。 start: 頁大小(頁數-1) stop : (頁大小 頁數)-1
當前是第1頁, 每頁顯示3條數據
start :0 stop:2
start :3 stop:5
start :6 stop: 8
刪除
LPOP key 移出并獲取列表的第一個元素(從左側刪除) RPOP key 移除列表的最后一個元素,返回值為移除的元素(從右側刪除) BLPOP key1 [key2 ] timeout 移出并獲取列表的第一個元素, 如果列表沒有元素會阻塞列表直到等待超 時或發現可彈出元素為止。
實例: redis 127.0.0.1:6379> BLPOP list1 100 在以上實例中,操作會被阻塞,如果指定的列表 key list1 存在數據則會返回第一個元素,否則在等待100秒后會 返回 nil
BRPOP key1 [key2 ] timeout :移出并獲取列表的最后一個元素, 如果列表沒有元素會阻塞列表直到等待 超時或發現可彈出元素為止。
LTRIM key start stop :對一個列表進行修剪(trim),就是說,讓列表只保留指定區間內的元素,不在 指定區間之內的元素都將被刪除。
修改
LSET key index value :通過索引設置列表元素的值
LINSERT key BEFORE|AFTER world value :在列表的元素前或者后插入元素 描述:將值 value 插入到 列表 key 當中,位于值 world 之前或之后。
高級命令
RPOPLPUSH source destination :移除列表的最后一個元素,并將該元素添加到另一個列表并返回 示例描述:
RPOPLPUSH a1 a2 :a1的最后元素移到a2的左側 RPOPLPUSH a1 a1 :循環列表,將最后元素移到最左側
BRPOPLPUSH source destination timeout :從列表中彈出一個值,將彈出的元素插入到另外一個列表 中并返回它; 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止。