Redis列表是簡單的字符串列表,列表是有序的,列表中的元素能夠重複。spa
能夠添加一個元素到列表的頭部(左邊)或者尾部(右邊)code
一個列表最多能夠包含 232 - 1 個元素 (40多億)。blog
一、lpush key value1 value2 ..... //往列表的頭部(左邊)推入一個或多個元素,lpush的l表示left。key是列表名稱,把列表中的全部元素做爲一個總體(value)。若key不存在,會自動建立。索引
示例:rem
lpush students "zhangsan" "lisi" "wangwu" //返回操做後列表中的總元素個數字符串
先在列表頭部添加「zhangsan」,再在列表頭部添加「lisi」,接着在列表頭部添加「wangwu」,最後列表的前三個元素依次是"wangwu"、「lisi」、「zhangsan」。class
二、lpushx key value1 value2 ...... //同上,只是key不存在時,不執行操做(不會自動建立)。要key已存在且key時list類型時纔會添加元素。搜索
三、lpop key //彈出列表的第一個元素,會從列表中移除並返回該元素。遍歷
l表示left,列表的頭部。im
四、rpush key value1 value2 .... //在列表尾部推入1個或多個元素。
五、rpushx key value1 value2 ..... //尾部,key已存在時纔會推入。
六、rpop //彈出列表的最後一個元素
r表示right,列表的尾部。
上面的l、r命令是一一對應的。
七、rpoplpush sourceKey destKey //彈出sourceKey的最後一個元素,並在destKey的頭部推入元素,即剪切。返回該元素。rpoplpush即對sourceKey執行rpop,對destKey執行lpush。
八、blpop key1 key2 .... timeout //彈出一個或多個的列表的第一個元素,若是列表爲空會阻塞列表直到等待超時或發現可彈出元素爲止。blpop即bind lpop。
示例: blpop students 60 //60s
九、brpop key1 key2 ..... timeout
十、brpoplpush sourceKey destKey timeout
十一、llen key //返回列表中的元素個數
十二、lset key index value //給指定索引處的元素設置值(即修改元素值)
1三、lindex key index //根據index索引元素,返回指定位置上的元素
1四、lrange key start end //返回[start,end]區間上的全部元素。start、end是索引,好比0 -1 就是返回全部元素。
1五、ltrim key start end //修剪列表,只保留[start,end]區間上的元素,其他元素會被刪除。
1六、linsert key before/after value1 value2 //在元素value1以前/以後插入元素value2。value2是要插入的元素。
示例: linsert student before "lisi" "zhangsan" //在lisi的前面插入zhangsan
插入成功,返回操做後列表的總長度;若value1不存在,返回-1;若key不存在或key是一個空的list,則返回0.
1七、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],兩邊都包含。