Redis基本數(shù)據(jù)類型List常用操作命令
Redis數(shù)據(jù)類型List操作
在redis里,可以把list巧妙的運用成 棧、隊列、阻塞隊列等。
一、push 插入元素
1. lpush,在頭部插入
將一個值或者多個值,插入到列表的頭部。
lpush list onelpush list twolpush list three

使用lpush,這里的l可以看成left,也就是在左邊插入,所以目前l(fā)ist是這樣的[three, two, one]。
2. rpush,在尾部插入
接下來,使用rpush,在右邊也就是在列表尾部插入元素。
rpush list right1 right2
此時,list是這樣的[three, two, one, right1, right2]。用lrange list 0 -1來獲取下:

二、range 通過區(qū)間獲取元素
可以想象成python里的range(),通過傳入開始和結(jié)束的下標(biāo),獲取元素。
lrange list 1 4

三、pop 移除元素
既然上面可以左右的添加操作,那么移除自然也有左右之分了。
移除操作,返回的是被移除的元素。
1. lpop 左邊移除
lpop list

2. rpop 右邊移除
rpop list

四、lindex 通過下標(biāo)獲取元素
lindex list 1

五、llen 獲取list長度
返回列表的長度。
llen list

六、lrem 移除指定元素
可以指定移除元素,并且指定數(shù)量。
lrem list 2 yi222
現(xiàn)在list里有3個yi222,我要移除2個。

七、ltrim 修剪
通過ltrim只保留指定的部分,去掉其他的部分,被截取的list發(fā)生改變。
ltrim list 1 4
這里下標(biāo)從1到4的都保留,其他都被去掉了。

八、組合命令 rpoplpush 移除并添加
這是組合命令,移除list最后一個元素,并且將它添加到另一個list。
rpoplpush list list2
這里list是原列表,list2是目標(biāo)列表,目標(biāo)列表不存在會去創(chuàng)建。

九、exists 判斷key 是否存在
exists list
存在返回1,不存在就返回0。

十、lset,設(shè)置指定下標(biāo)的值
lset list 1 test
當(dāng)索引參數(shù)超出范圍,或?qū)σ粋€空列表進(jìn)行 LSET 時,返回一個錯誤。

十一、linsert,指定位置之前/之后插入值
之前
linsert list before test before_test
這是在元素test之前,插入元素before_test。

之后
linsert list after test after_test
這是在元素test之后,插入元素after_test。

十二、小結(jié)
從上述list的操作中,可以觀察出它的一些特點:
它實際上是一個鏈表,節(jié)點的左右都方便插入。如果key不存在,會創(chuàng)建新的鏈表。如果key存在,就新增元素。如果移除了所有的值,就是空鏈表,也就是不存在。在兩邊插入或者改動值,效率最高。中間的元素操作,效率相對低。
list在實際中可以靈活運用,比如隊列,棧,都能用list來實現(xiàn)。
以上就是Redis數(shù)據(jù)類型List常用操作命令的詳細(xì)內(nèi)容,更多關(guān)于Redis數(shù)據(jù)類型List操作命令的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Redis?的內(nèi)存淘汰策略和過期刪除策略的區(qū)別
這篇文章主要介紹了Redis?的內(nèi)存淘汰策略和過期刪除策略的區(qū)別,Redis?是可以對?key?設(shè)置過期時間的,因此需要有相應(yīng)的機制將已過期的鍵值對刪除,而做這個工作的就是過期鍵值刪除策略2022-07-07
redis分布式鎖的go-redis實現(xiàn)方法詳解
這篇文章主要介紹了redis分布式鎖的go-redis實現(xiàn)方法,本文給大家介紹的非常詳細(xì)對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12

