Redis list(列表)
Redis列表是簡單的字符串列表,列表是有序的,列表中的元素可以重復(fù)。
可以添加一個(gè)元素到列表的頭部(左邊)或者尾部(右邊)
一個(gè)列表最多可以包含 232?- 1 個(gè)元素 (40多億)。
?
?
1、lpush key value1 value2 .....? ? //往列表的頭部(左邊)推入一個(gè)或多個(gè)元素,lpush的l表示left。key是列表名稱,把列表中的所有元素作為一個(gè)整體(value)。若key不存在,會自動創(chuàng)建。
示例:
?lpush students "zhangsan" "lisi" "wangwu"? ? ? ?//返回操作后列表中的總元素個(gè)數(shù)
先在列表頭部添加“zhangsan”,再在列表頭部添加“l(fā)isi”,接著在列表頭部添加“wangwu”,最后列表的前三個(gè)元素依次是"wangwu"、“l(fā)isi”、“zhangsan”。
?
2、lpushx key value1 value2 ......? ? //同上,只是key不存在時(shí),不執(zhí)行操作(不會自動創(chuàng)建)。要key已存在且key時(shí)list類型時(shí)才會添加元素。
3、lpop key? ?//彈出列表的第一個(gè)元素,會從列表中移除并返回該元素。
?
l表示left,列表的頭部。
?
?
?
4、rpush key value1 value2 ....? ? //在列表尾部推入1個(gè)或多個(gè)元素。
5、rpushx key value1 value2 .....? ? ?//尾部,key已存在時(shí)才會推入。
6、rpop? ? //彈出列表的最后一個(gè)元素
r表示right,列表的尾部。
?
上面的l、r命令是一一對應(yīng)的。
?
?
7、rpoplpush sourceKey destKey? ?//彈出sourceKey的最后一個(gè)元素,并在destKey的頭部推入元素,即剪切。返回該元素。rpoplpush即對sourceKey執(zhí)行rpop,對destKey執(zhí)行l(wèi)push。
?
?
8、blpop? key1? key2? ....? ?timeout? ? //彈出一個(gè)或多個(gè)的列表的第一個(gè)元素,如果列表為空會阻塞列表直到等待超時(shí)或發(fā)現(xiàn)可彈出元素為止。blpop即bind? lpop。
示例:?blpop students 60? ? //60s
9、brpop? key1? key2 .....? ?timeout
10、brpoplpush? sourceKey? destKey? ?timeout
?
??
?
11、llen? key? ? //返回列表中的元素個(gè)數(shù)
12、lset? key? index? value? ? //給指定索引處的元素設(shè)置值(即修改元素值)
13、lindex? key? index? ?//根據(jù)index索引元素,返回指定位置上的元素
14、lrange? key start? end? ? //返回[start,end]區(qū)間上的所有元素。start、end是索引,比如0? -1? 就是返回所有元素。
15、ltrim key start? end? ?//修剪列表,只保留[start,end]區(qū)間上的元素,其余元素會被刪除。
?
16、linsert? key? before/after? value1? value2? ? //在元素value1之前/之后插入元素value2。value2是要插入的元素。
示例:?linsert student before "lisi" "zhangsan"? ? ?//在lisi的前面插入zhangsan
插入成功,返回操作后列表的總長度;若value1不存在,返回-1;若key不存在或key是一個(gè)空的list,則返回0.
?
17、lrem? key? count? value? //移除列表中值為value的所有元素。lrem即list remove。count是一個(gè)整數(shù),表示要刪除的個(gè)數(shù)、搜索方向。
count>0:從表頭向表尾搜索,移除count個(gè)值為value的元素
count<0:從表尾向表頭搜索,移除count的絕對值個(gè)值為value的元素
count=0:移除表中所有的值為value的元素。要遍歷列表,從哪邊開始結(jié)果、速度都是一樣的。
示例:?lrem scores 0 90? ? 移除列表中所有的90
?
以上幾個(gè)命令中,l表示list。index從0開始,支持負(fù)數(shù)索引,index要是已存在的
?
?
Redis的區(qū)間,都是閉區(qū)間,[start,end],兩邊都包含。
?
轉(zhuǎn)載于:https://www.cnblogs.com/chy18883701161/p/11078844.html
總結(jié)
以上是生活随笔為你收集整理的Redis list(列表)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 好程序员Web前端教程分享JavaScr
- 下一篇: 23 | MySQL是怎么保证数据不丢的