redis之(六)redis的列表类型的命令
[一]向列表两端添加元素
-->命令:LPUSH key value [value ...]
-->向列表的左侧添加元素,返回值表示增加元素后列表的长度
-->命令:RPUSH key value [value...]
-->向列表的右侧添加元素,返回值表示增加元素后列表的长度
[二]从列表两端弹出元素
-->命令:LPOP key
-->从列表的左侧弹出一个元素,列表里需要把这个元素清除
-->命令:RPOP key
-->从列表的右侧弹出一个元素,列表里需要把这个元素清除
[三]获取列表中元素的个数
-->命令:LLEN key
-->获取指定列表中存储元素的个数.当键不存在,返回0
-->获取时间复杂度为0,不像mysql需要统计
[四]获得列表的片段
-->命令:LRANGE key start stop
-->从列表的指定起始索引,结束索引,获取列表的元素集合。但不会在列表中把这些元素清除
-->索引从0开始,区间是双向闭区间。
-->列表的左端是索引的起始位置,0开始。0表示第一个元素,1表示第二个元素
-->列表也支持负索引。从列表的右端开始。-1表示右端第一个元素,-2表示右端第二个元素
-->LRANGE key 0 -1可以获取列表中所有的元素。
-->如果start的索引位置比stop的索引位置靠后,则返回空别表
-->如果stop大雨实际的索引范围,则会返回到列表最右端的元素
[五]删除列表中指定的值
-->命令:LREM key count value
-->删除列表中前count个值为value的元素。返回值是实际删除的元素个数。
-->count 的值不同,LREM 命令的执行方式会有偏差
(1)当count>0:列表会从左边开始删除前count个值为value的元素
(2)当count<0:列表会从右边删除前count的绝对值个值为value的元素
(3)当count=0:列表会删除所有值为value的元素
[六]获得/设置指定索引的元素值
-->命令:LINDEX key index
-->获得列表中指定索引的值
-->命令:LSET key index value
-->设置列表中指定索引的值
[七]只保留列表指定片段
-->命令:LTRIM key start end
-->可以删除列表中指定范围以外的所有元素
-->其指定范围的方法和命令LRANGE指定的范围是一样的
[八]向列表中插入元素
-->命令:LINSERT key BEFORE|AFTER pivot value
-->该命令会在列表中从左到右查找值为pivot的元素,然后根据第二个参数是before还是after来决定将value插入到该元素的前面还是后面
-->命令的返回值是插入后列表的元素个数
[九]将元素从一个列表转移到另一个列表
-->命令:RPOPLPUSH source destination
-->该命令先从source列表类型键的右边弹出一个元素,然后将其加入到destination的列表类型键的左边,并返回这个元素的值
-->当source和destination相同的时候,该命令会不断将队列尾部的元素移动到队列首部。借助这个特性可以实现一个网站监控系统。