網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
Redis數(shù)據(jù)類型List操作
在redis里,可以把list巧妙的運(yùn)用成 棧、隊(duì)列、阻塞隊(duì)列等。
一、push 插入元素
1. lpush,在頭部插入
將一個(gè)值或者多個(gè)值,插入到列表的頭部。
lpush list onelpush list twolpush list three
使用lpush
,這里的l可以看成left,也就是在左邊插入,所以目前l(fā)ist是這樣的[three, two, one]
。
2. rpush,在尾部插入
接下來(lái),使用rpush
,在右邊也就是在列表尾部插入元素。
rpush list right1 right2
此時(shí),list是這樣的[three, two, one, right1, right2]
。用lrange list 0 -1
來(lái)獲取下:
二、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長(zhǎng)度
返回列表的長(zhǎng)度。
llen list
六、lrem 移除指定元素
可以指定移除元素,并且指定數(shù)量。
lrem list 2 yi222
現(xiàn)在list里有3個(gè)yi222,我要移除2個(gè)。
七、ltrim 修剪
通過ltrim
只保留指定的部分,去掉其他的部分,被截取的list發(fā)生改變。
ltrim list 1 4
這里下標(biāo)從1到4的都保留,其他都被去掉了。
八、組合命令 rpoplpush 移除并添加
這是組合命令,移除list最后一個(gè)元素,并且將它添加到另一個(gè)list。
rpoplpush list list2
這里list
是原列表,list2
是目標(biāo)列表,目標(biāo)列表不存在會(huì)去創(chuàng)建。
九、exists 判斷key 是否存在
exists list
存在返回1,不存在就返回0。
十、lset,設(shè)置指定下標(biāo)的值
lset list 1 test
當(dāng)索引參數(shù)超出范圍,或?qū)σ粋€(gè)空列表進(jìn)行 LSET 時(shí),返回一個(gè)錯(cuò)誤。
十一、linsert,指定位置之前/之后插入值
之前
linsert list before test before_test
這是在元素test
之前,插入元素before_test
。
之后
linsert list after test after_test
這是在元素test
之后,插入元素after_test
。
十二、小結(jié)
從上述list的操作中,可以觀察出它的一些特點(diǎn):
它實(shí)際上是一個(gè)鏈表,節(jié)點(diǎn)的左右都方便插入。如果key不存在,會(huì)創(chuàng)建新的鏈表。如果key存在,就新增元素。如果移除了所有的值,就是空鏈表,也就是不存在。在兩邊插入或者改動(dòng)值,效率最高。中間的元素操作,效率相對(duì)低。
list在實(shí)際中可以靈活運(yùn)用,比如隊(duì)列,棧,都能用list來(lái)實(shí)現(xiàn)。
原文鏈接:https://blog.csdn.net/wessonlan/article/details/124813056
相關(guān)推薦
- 2022-06-19 rsa詳解及例題及python算法_python
- 2022-12-02 Python?selenium?get_cookies獲取cookie不全的解決方案_python
- 2022-06-08 ASP.NET?Core中間件_基礎(chǔ)應(yīng)用
- 2023-03-25 React?數(shù)據(jù)獲取條件競(jìng)爭(zhēng)原理解析_React
- 2022-06-02 Android?View的事件體系教程詳解_Android
- 2022-08-18 .Net中的弱引用字典WeakDictionary和ConditionalWeakTable介紹_實(shí)
- 2021-10-09 C#?將Excel轉(zhuǎn)為PDF時(shí)自定義表格紙張大小的代碼思路_C#教程
- 2023-03-23 python中decimal模塊的具體使用_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支