redis-list类型基本命令
redis存储数据的value可以是一个String类型的列表。列表中的数据会按照插入顺序进行排序,不过,该列表的底层实际上是一个没有
头节点的双向链表,所以对列表表头和表尾操作性能较高,但是对中间元素的插入和删除操作性能较差。
1.lpush/rpush命令
格式:LPUSH/RPUSH key value [value value ...]
功能:将一个或多个value插入到指定列表key的表头或者表尾(左侧为表头,右侧为表尾)。
说明:如果有多个value,对于lpush来说,每个value按照从左到右的顺序依次插入到表头,例如,我插入了 1,2,3,那么
列表的顺序为3,2,1;对于rpush来说,每个value按照从左到右的顺序依次插入到表尾,例如,我插入了 1,2,3,那么
列表的顺序为1,2,3。如果指定的列表key为空,那么会先创建一个空的列表然后插入数据。执行成功返回列表的长度。
lrange命令
格式:LRANGE key start stop
功能: 查询指定列表key从start到stop的元素。
说明:支持负数索引,-1 表示最后一个元素,-2 表示倒数第二个,依此类推;如果 stop 超出列表长度,默认返回到列表末尾,如果start大于stop会返回(empty array)。
2.llen命令
格式: LLEN key
功能: 返回列表key的长度
说明: 如果key不存在,则返回0,如果指定的key不是列表类型,返回错误。
3.lindex命令
格式: LINDEX key index
功能: 返回指定列表key中,下标为指定index的元素,列表从左到右从0开始索引,从右到左从-1开始索引。
说明: 如果index参数的值不在列表的索引范围内,返回nil。
4.lset命令
格式: LSET key index value
功能: 将指定的列表key的index位置的元素设置为指定的value
说明: 当index超出指定key的索引范围,或对一个空的列表进行LSET命令时,返回错误。
lpush/rpush key value命令
格式:LPUSH|RPUSH kye value [value value ...]
功能: 向指定列表key的表头/表尾依次插入 指定的value,执行成功时返回列表的长度。
说明:当指定的列表key不存在时,创建一个空的列表并插入数据;当key存在但是不是列表类型时会报错。
lpushx/rpushx key value命令
格式:LPUSHX|RPUSHX kye value [value value ...]
功能: 向指定列表key的表头/表尾依次插入 指定的value,执行成功时返回列表的长度。
说明:当指定的列表key不存在时会返回0。
linsert命令
格式: LINSERT key BEFORE|AFTER pivot value
功能: 将value插入到指定列表key当中,位于元素pivot之前或之后。
说明:当pivot元素不存在于列表中时,不执行任何操作,返回-1;当指定列表key不存在时,不执行任何操作,返回0;如果key不是列表类型,返回一个错误;如果命令执行成功,返回插入操作完成之后,列表的长度。
lpop/rpop命令
格式:LPOP|RPOP key count
功能:从指定列表key的表头或表尾移除count个元素,并返回被移除的元素,count默认值为1。
说明: 当key不存在时,返回nil。
blpop/brpop命令
格式:BLPOP|BRPOP key [key key key ...] timeout
功能:B的意思是blocking,阻塞,当指定的列表key内没有表头元素或者表尾元素(可以理解为空列表)可以移除的时候会阻塞指定的timeout时间或者发现有可移除的元素的为止(其他客户端向key中push元素),单位为秒;
当指定多个列表的时候,从左到右依次判断是否可以移除表头或者表尾元素,只会移除第一个符合条件的list里的元素,当没有列表可以移除的时候会阻塞直到的timeout时间或者发现有可移除的元素的为止(其他客户端向key中push元素),单位为秒;
如果timeout指定为0,那么表示只要没有可以移除的元素会一直阻塞。
说明:如果在指定时间内没有元素被移除,那么会返回一个nil和等待时间;如果在指定时间内有元素被移除,那么会返回一个包含两个元素的列表,key和移除的元素。
rpoplpush命令
格式:RPOPLPUSH key1 key2
功能:将指定列表key1的表尾元素移动到指定列表key2的表头位置,注意,是移动,不是复制!如果key1不存在,返回nil。
说明:如果key1和key2是同一个列表,那么就是将该列表的表尾元素移动到表头,这种特殊情况称之为列表的旋转(rotation)操作。
brpoplpush命令
格式: BRPOPLPUSH key1 key2 timeout
功能:rpoplpush命令的阻塞版本,当指定的列表key1中不存在元素时,会阻塞指定timeout时间或者发现有可以移动的元素为止(其他客户端向key中push元素),单位为秒。
如果timeout指定为0,那么表示只要没有可以移除的元素会一直阻塞。
lrem命令
格式: LREM key count value
功能:删除指定列表key中的value值count个,如果count>0 ,从表头向表尾遍历;如果count<0,从表尾向表头遍历;如果
count=0,删除列表中所有value,执行成功,返回被删除的元素的数量。
说明:当指定的key不存在时,返回0。
ltrim命令
格式: LTRIM key start stop
功能: 保留指定区间的元素。
说明:当key不是列表类型时报错,如果start超出列表的最大索引,会清空列表。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/912450.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!