Redis list(列表)相关命令
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],两边都包含。