Redis基本數據類型List常用操作命令

Redis數據類型List操作

在redis裡,可以把list巧妙的運用成 棧、隊列、阻塞隊列等。

一、push 插入元素

1. lpush,在頭部插入

將一個值或者多個值,插入到列表的頭部。

lpush list onelpush list twolpush list three

使用lpush,這裡的l可以看成left,也就是在左邊插入,所以目前list是這樣的[three, two, one]

2. rpush,在尾部插入

接下來,使用rpush,在右邊也就是在列表尾部插入元素。

rpush list right1 right2

此時,list是這樣的[three, two, one, right1, right2]。用lrange list 0 -1來獲取下:

二、range 通過區間獲取元素

可以想象成python裡的range(),通過傳入開始和結束的下標,獲取元素。

lrange list 1 4

三、pop 移除元素

既然上面可以左右的添加操作,那麼移除自然也有左右之分瞭。

移除操作,返回的是被移除的元素。

1. lpop 左邊移除

lpop list

2. rpop 右邊移除

rpop list

四、lindex 通過下標獲取元素

lindex list 1

五、llen 獲取list長度

返回列表的長度。

llen list

六、lrem 移除指定元素

可以指定移除元素,並且指定數量。

lrem list 2 yi222

現在list裡有3個yi222,我要移除2個。

七、ltrim 修剪

通過ltrim隻保留指定的部分,去掉其他的部分,被截取的list發生改變。

ltrim list 1 4

這裡下標從1到4的都保留,其他都被去掉瞭。

八、組合命令 rpoplpush 移除並添加

這是組合命令,移除list最後一個元素,並且將它添加到另一個list。

rpoplpush list list2

這裡list是原列表,list2是目標列表,目標列表不存在會去創建。

九、exists 判斷key 是否存在

exists list

存在返回1,不存在就返回0。

十、lset,設置指定下標的值

lset list 1 test

當索引參數超出范圍,或對一個空列表進行 LSET 時,返回一個錯誤。

十一、linsert,指定位置之前/之後插入值

之前

linsert list before test before_test

這是在元素test之前,插入元素before_test

之後

linsert list after test after_test

這是在元素test之後,插入元素after_test

十二、小結

從上述list的操作中,可以觀察出它的一些特點:

它實際上是一個鏈表,節點的左右都方便插入。如果key不存在,會創建新的鏈表。如果key存在,就新增元素。如果移除瞭所有的值,就是空鏈表,也就是不存在。在兩邊插入或者改動值,效率最高。中間的元素操作,效率相對低。

list在實際中可以靈活運用,比如隊列,棧,都能用list來實現。

以上就是Redis數據類型List常用操作命令的詳細內容,更多關於Redis數據類型List操作命令的資料請關註WalkonNet其它相關文章!

推薦閱讀: