標籤:
本文和大家分享的主要是redis的清單類型相關內容,一起來看看吧,希望對大家學習redis有所協助。 清單類型,可以儲存一個有序的字串列表,常用的操作是向列表兩端添加元素,或者獲得列表的某一個片段 清單類型內部是使用雙向鏈表實現的,所以向列表兩端添加元素的時間複雜度是 o(1),擷取越接近兩端的元素速度就越快 鏈表的代價是通過索引訪問元素比較慢 向列表兩端添加元素 向列表左邊添加元素,返回增加後列表的長度 LPUSH key value1 value2 127.0.0.1:6379> LPUSH number 1 (integer) 1 127.0.0.1:6379> LPUSH number 1 2 3 (integer) 4 向列表右邊增加元素,返回增加後列表的長度 RPUSH key value1 value2 127.0.0.1:6379> RPUSH number 7 8 9 (integer) 7 向列表兩端移除元素 向左邊移除元素,返回被移除的元素 127.0.0.1:6379> LPOP number "3" 向右邊移除元素,返回被移除的元素 127.0.0.1:6379> RPOP number "9" 擷取列表中元素的個數 當鍵不存在是,返回 0 127.0.0.1:6379> LLEN number (integer) 5 擷取列表片段 可以根據索引範圍擷取某一段資料,索引從 0 開始 LRANGE key startIndex stopIndex 127.0.0.1:6379> LRANGE number 0 1 1) "2" 2) "1" LRANGE 也支援負索引,比如 -1 表示最右邊的第一個元素 127.0.0.1:6379> LRANGE number -2 -1 1) "7" 2) "8" 所以,我們使用 LRANGE number 0 -1 可以擷取列表中的所有元素 如果 start 的索引位置比 stop 靠後,返回空列表 如果 stop 大於實際索引範圍,則會返回到列表最右邊的元素 刪除列表中指定的值 LREM key count value 會刪除列表中前 count 個值為 value 的元素,返回實際刪除的元素個數 · 當 count > 0 時,會從左邊開始刪除 · 當 count < 0 時,會從右邊開始刪除 · 當 count = 0 時,會刪除所有 127.0.0.1:6379> LRANGE number 0 -1 1) "2" 2) "1" 3) "1" 4) "7" 5) "8" 127.0.0.1:6379> LREM number 1 2 (integer) 1 127.0.0.1:6379> LRANGE number 0 -1 1) "1" 2) "1" 3) "7" 4) "8" 擷取和設定指定索引的元素值 LINDEX key index 127.0.0.1:6379> LRANGE number 0 -1 1) "1" 2) "1" 3) "7" 4) "8" 127.0.0.1:6379> LINDEX number 1 "1" LSET key index value 127.0.0.1:6379> LSET number 1 2 OK 127.0.0.1:6379> LRANGE number 0 -1 1) "1" 2) "2" 3) "7" 4) "8" 只保留列表指定片段 刪除指定範圍之外的所有元素,指定範圍和 LRANGE 一致 LTRIM key startIndex endIndex 127.0.0.1:6379> LRANGE number 0 -1 1) "1" 2) "2" 3) "7" 4) "8" 127.0.0.1:6379> LTRIM number 1 2 OK 127.0.0.1:6379> LRANGE number 0 -1 1) "2" 2) "7" 向列表中插入元素 LINSERT key BEFORE | AFTER pivot value LINSERT 會在列表中從左至右尋找值為 pivot 的元素,然後根據第二個參數 BEFORE | AFTER 決定將值插入到該元素後面還是前面 127.0.0.1:6379> LRANGE number 0 -1 1) "2" 2) "7" 127.0.0.1:6379> LINSERT number AFTER 2 3 (integer) 3 127.0.0.1:6379> LRANGE number 0 -1 1) "2" 2) "3" 3) "7" 127.0.0.1:6379> LINSERT number BEFORE 7 4 (integer) 4 127.0.0.1:6379> LRANGE number 0 -1 1) "2" 2) "3" 3) "4" 4) "7" 將元素從一個列錶轉移到另一個列表 RPOPLPUSH source destination 把 source 右邊的第一個元素彈出給 destination127.0.0.1:6379> LRANGE number 0 -1 1) "2" 2) "3" 3) "4" 4) "7"127.0.0.1:6379> RPOPLPUSH number numberCopy "7"127.0.0.1:6379> LRANGE numberCopy 0 -1 1) "7" 127.0.0.1:6379> LRANGE number 0 -1 1) "2" 2) "3" 3) "4"來源:Enda Yuan
Redis學習之清單類型詳解