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],两边都包含。