Redis 列表(List)
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)
一个列表最多可以包含 2的32次方 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
实例
redis 127.0.0.1:6379> LPUSH w3ckey redis
(integer) 1
redis 127.0.0.1:6379> LPUSH w3ckey mongodb
(integer) 2
redis 127.0.0.1:6379> LPUSH w3ckey mysql
(integer) 3
redis 127.0.0.1:6379> LRANGE w3ckey 0 10
1) "mysql"
2) "mongodb"
3) "redis"
在以上实例中我们使用了 LPUSH 将三个值插入了名为 w3ckey 的列表当中。
Redis 列表命令
下表列出了列表相关的基本命令:
1blpop key1 [key2 ] timeout 移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
2brpop key1 [key2 ] timeout 移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
3brpoplpush list another_list timeout 从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
4lindex key index 通过索引获取列表中的元素,你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
5linsert key before|after existing_value new_value 在列表的元素前或者后插入元素, 当指定元素不存在于列表中时,不执行任何操作。 当列表不存在时,被视为空列表,不执行任何操作。 如果 key 不是列表类型,返回一个错误。如果命令执行成功,返回插入操作完成之后,列表的长度。 如果没有找到指定元素 ,返回 -1 。 如果 key 不存在或为空列表,返回 0 。
6llen key 获取列表长度
7lpop key 移出并获取列表的第一个元素(最左边元素)
8lpush key value1 [value2] 将一个或多个值插入到列表头部(左面) , 如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。 当 key 存在但不是列表类型时,返回一个错误。
9lpushx key value 将一个或多个值插入到已存在的列表头部,列表不存在时操作无效。
10lrange key start stop 获取列表指定范围内的元素,下标从0开始
11lrem key count value 移除列表元素,
Redis Lrem 根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素。
COUNT 的值可以是以下几种:
- count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
- count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
- count = 0 : 移除表中所有与 VALUE 相等的值。
13 ltrim key start stop 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
14 rpop key 移除并获取列表最后一个元素(最右边元素)
15 rpoplpush list another_list 移除列表的最后一个元素,并将该元素添加到另一个列表并返回
16 rpush key value1 [value2] 在列表尾部添加一个或多个值
17 rpushx key value 用于将一个或多个值插入到已存在的列表尾部(最右边)。如果列表不存在,操作无效。