Redis列表是簡單的字元串列表,列表是有序的,列表中的元素可以重覆。 可以添加一個元素到列表的頭部(左邊)或者尾部(右邊) 一個列表最多可以包含 232 - 1 個元素 (40多億)。 1、lpush key value1 value2 ..... //往列表的頭部(左邊)推入一個或多個元素,lp ...
Redis列表是簡單的字元串列表,列表是有序的,列表中的元素可以重覆。
可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)
一個列表最多可以包含 232 - 1 個元素 (40多億)。
1、lpush key value1 value2 ..... //往列表的頭部(左邊)推入一個或多個元素,lpush的l表示left。key是列表名稱,把列表中的所有元素作為一個整體(value)。若key不存在,會自動創建。
示例:
lpush students "zhangsan" "lisi" "wangwu" //返回操作後列表中的總元素個數
先在列表頭部添加“zhangsan”,再在列表頭部添加“lisi”,接著在列表頭部添加“wangwu”,最後列表的前三個元素依次是"wangwu"、“lisi”、“zhangsan”。
2、lpushx key value1 value2 ...... //同上,只是key不存在時,不執行操作(不會自動創建)。要key已存在且key時list類型時才會添加元素。
3、lpop key //彈出列表的第一個元素,會從列表中移除並返回該元素。
l表示left,列表的頭部。
4、rpush key value1 value2 .... //在列表尾部推入1個或多個元素。
5、rpushx key value1 value2 ..... //尾部,key已存在時才會推入。
6、rpop //彈出列表的最後一個元素
r表示right,列表的尾部。
上面的l、r命令是一一對應的。
7、rpoplpush sourceKey destKey //彈出sourceKey的最後一個元素,併在destKey的頭部推入元素,即剪切。返回該元素。rpoplpush即對sourceKey執行rpop,對destKey執行lpush。
8、blpop key1 key2 .... timeout //彈出一個或多個的列表的第一個元素,如果列表為空會阻塞列表直到等待超時或發現可彈出元素為止。blpop即bind lpop。
示例: blpop students 60 //60s
9、brpop key1 key2 ..... timeout
10、brpoplpush sourceKey destKey timeout
11、llen key //返回列表中的元素個數
12、lset key index value //給指定索引處的元素設置值(即修改元素值)
13、lindex key index //根據index索引元素,返回指定位置上的元素
14、lrange key start end //返回[start,end]區間上的所有元素。start、end是索引,比如0 -1 就是返回所有元素。
15、ltrim key start end //修剪列表,只保留[start,end]區間上的元素,其餘元素會被刪除。
16、linsert key before/after value1 value2 //在元素value1之前/之後插入元素value2。value2是要插入的元素。
示例: linsert student before "lisi" "zhangsan" //在lisi的前面插入zhangsan
插入成功,返回操作後列表的總長度;若value1不存在,返回-1;若key不存在或key是一個空的list,則返回0.
17、lrem key count value //移除列表中值為value的所有元素。lrem即list remove。count是一個整數,表示要刪除的個數、搜索方向。
count>0:從表頭向表尾搜索,移除count個值為value的元素
count<0:從表尾向表頭搜索,移除count的絕對值個值為value的元素
count=0:移除表中所有的值為value的元素。要遍歷列表,從哪邊開始結果、速度都是一樣的。
示例: lrem scores 0 90 移除列表中所有的90
以上幾個命令中,l表示list。index從0開始,支持負數索引,index要是已存在的
Redis的區間,都是閉區間,[start,end],兩邊都包含。