天天看點

redis的資料結構——存儲list

在Redis中,List類型是按照插入順序排序的字元串連結清單。和資料結構中的普通連結清單 一樣,我們可以在其頭部(left)和尾部(right)添加新的元素。在插入時,如果該鍵并不 存在,Redis将為該鍵建立一個新的連結清單。與此相反,如果連結清單中所有的元素均被移 除,那麼該鍵也将會被從資料庫中删除。List中可以包含的最大元素數量是 4294967295。

redis的資料結構——存儲list

1、兩端添加

● lpush key values[value1 value2 ...]:在list頭部添加元素

redis的資料結構——存儲list

● rpush key values[value1 value2 ...]:在改list尾部添加元素

redis的資料結構——存儲list

2、檢視清單

● lrange key start end:擷取連結清單中從start到end的元素的值,start、end從0開始計數;也可以為負數,若為-1則表示連結清單尾部的元素,-2表示倒數第二個,依次類推....

redis的資料結構——存儲list
redis的資料結構——存儲list

3、兩端彈出

● lpop key:彈出頭部元素,若key不存在則傳回nil;

redis的資料結構——存儲list

● rpop key:彈出尾部元素

redis的資料結構——存儲list

4、擷取清單中元素的個數

● llen key:傳回指定key關聯的連結清單的元素個數

redis的資料結構——存儲list

5、擴充指令

● lpushx key value:僅當參數中指定的可以存在時,向關聯的list的頭部插入value,如果不存在,将不進行插入。

redis的資料結構——存儲list

● rpushx key value:在list尾部插入

redis的資料結構——存儲list

● lrem key count value:删除count個值為value的元素,如果count大于0,從頭到尾周遊并删除count個值為value的元素,如果count小于0,則從尾到頭周遊并删除,如果count等于0,則删除連結清單中所有等于value的元素。

1)從頭删除兩個b

redis的資料結構——存儲list

2)從未删除兩個a

redis的資料結構——存儲list

3)删除全部a

redis的資料結構——存儲list

● lset key index value:設定連結清單中的index的腳标的元素值,0代表的頭元素,-1代表連結清單的微元素,操作連結清單的腳标不存在則抛異常。

redis的資料結構——存儲list

● linsert key before|after pivot value:在pivot元素前或者後插入value這個元素

redis的資料結構——存儲list

● rpoplpush resource destination:将連結清單中的尾部元素彈出并添加到頭部。【循環操作】

redis的資料結構——存儲list

繼續閱讀