列表数据类型(List)
- 特点
1、元素是字符串类型
2、列表头尾增删快,中间增删慢,增删元素是常态
3、元素可重复
4、最多可包含2^32 -1个元素
5、索引同python列表
- 列表常用命令
# 增
1、从列表头部压入元素
LPUSH key value1 value2
返回:list长度
2、从列表尾部压入元素
RPUSH key value1 value2
返回:list长度
3、从列表src尾部弹出1个元素,压入到列表dst的头部
RPOPLPUSH src dst
返回:被弹出的元素
4、在列表指定元素后/前插入元素
LINSERT key after|before value newvalue
返回:
1,如果命令执行成功,返回列表的长度
2,如果没有找到 pivot ,返回 -1
3,如果 key 不存在或为空列表,返回 0
# 查
5、查看列表中元素
LRANGE key start stop
# 查看列表中所有元素: LRANGE key 0 -1
6、获取列表长度
LLEN key
# 删
7、从列表头部弹出1个元素
LPOP key
8、从列表尾部弹出1个元素
RPOP key
9、列表头部,阻塞弹出,列表为空时阻塞
BLPOP key timeout
10、列表尾部,阻塞弹出,列表为空时阻塞
BRPOP key timeout
# 关于BLPOP 和 BRPOP
1、如果弹出的列表不存在或者为空,就会阻塞
2、超时时间设置为0,就是永久阻塞,直到有数据可以弹出
3、如果多个客户端阻塞再同一个列表上,使用First In First Service原则,先到先服务
11、删除指定元素
LREM key count value
count>0:表示从头部开始向表尾搜索,移除与value相等的元素,数量为count
count<0:表示从尾部开始向表头搜索,移除与value相等的元素,数量为count
count=0:移除表中所有与value相等的值
返回:被移除元素的数量
12、保留指定范围内的元素
LTRIM key start stop
返回:ok
样例:
LTRIM mylist1 0 2 # 只保留前3条
# 应用场景: 保存微博评论最后500条
LTRIM weibo:comments 0 499
# 改
13、将列表 key 下标为 index 的元素的值设置为 value
LSET key index newvalue