redis取出list最边的一个_六、Redis列表(list)类型参考记录(1)
列表(list)類型可以存儲一個有序的字符串列表。常用操作是向列表兩端添加元素,或者獲得列表的某個片段。
列表類型內部使用雙向鏈表(bouble linked list)實現,因此向兩端添加元素的時間復雜度為O(1),獲取越接近兩端的元素速度就越快。
缺點
通過索引訪問元素比較慢。設想1000人排隊買手機的場景畫面,商家為了感謝粉絲的支持,決定獎勵排在第 500名的這位顧客一部手機。為了找到這個顧客,商家需要從隊首開始找。排得越靠后越花費時間。
經典使用場景
微博上的時事等有時效的內容。
基本命令
lpush 將一個或多個值插入列表頭部
語法:lpush key value1 [value2 ...]127.0.0.1:6379> lpush number 1
(integer) 1
127.0.0.1:6379> lpush number 2 3
(integer) 3lpush向列表左邊增加元素。lpush先向列表左邊加入2,然后再加入3。因此number鍵中的數據是3 2 1
rpush 向列表右邊增加一個或多個值
語法:rpush key value1 [value2 ...]127.0.0.1:6379> rpush number 0 -1
(integer) 5向列表右邊增加了0和-1,此時列表中的值為 3 2 1 0 -1
lpop 從列表左邊彈出一個元素并顯示該值
語法:lpop key127.0.0.1:6379> lpop number
"3"
rpop 從列表右邊彈出一個元素并顯示該值
語法:rpop key127.0.0.1:6379> rpop number
"-1"lpop/rpop命令2步驟下:1)移除列表左邊的一個元素;2)返回被移除元素的值
llen 獲取列表中元素的個數
語法:llen key127.0.0.1:6379> llen number
(integer) 3key不存在時返回0
lrange 獲取指定范圍的元素
語法:lrange key start end# 獲取所有元素
127.0.0.1:6379> lrange number 0 -1
1) "2"
2) "1"
3) "0"
# 獲取前2個元素
127.0.0.1:6379> lrange number 0 1
1) "2"
2) "1"1)若start索引位置比end索引位置靠后,則返回空列表
2)若end大于實際索引范圍,則返回列表最右邊的元素
lrem 刪除列表中指定的值
語法:lrem key count value
lrem刪除列表中前count個值為value的元素,返回實際刪除元素的個數。count值不同,lrem命令執(zhí)行方式有些差異。當 count > 0 時,lrem命令會從列表左邊開始刪除前count個值為value的元素;
當 count < 0 時,lrem命令會從列表右邊開始刪除前count個值為value的元素;
當 count = 0 時,lrem命令會刪除所有值為value的元素。127.0.0.1:6379> rpush number 2
(integer) 4
127.0.0.1:6379> lrange number 0 -1
1) "2"
2) "1"
3) "0"
4) "2"
# 從右邊開始刪除值為2的元素
127.0.0.1:6379> lrange number 0 -1
1) "2"
2) "1"
3) "0"
4) "2"
127.0.0.1:6379> lrem number -1 2
(integer) 1
127.0.0.1:6379> lrange number 0 -1
1) "2"
2) "1"
3) "0"
lindex 通過索引獲取列表中的元素
語法:lindex key index127.0.0.1:6379> lindex number 0
"2"
lset 通過索引設置列表元素的值
語法:lset key index value# 列表元素中索引為1的值設置為7
127.0.0.1:6379> lset number 1 7
OK
我是夕陽何處尋,期待和優(yōu)秀的你一起同行!
小白
2020年08月31日
轉載:感謝您對自如初博客網站的認可,所有文章均屬原創(chuàng)文章,技術類文章轉載請注明出處,“自如初博客”;文學類文章請帶文本鏈接地址,否則視為侵權!
很贊哦!(4)
總結
以上是生活随笔為你收集整理的redis取出list最边的一个_六、Redis列表(list)类型参考记录(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DSA签名算法
- 下一篇: mysql中怎么在列中使用时间函数_my