基础概念
- 元素必须是字符串类型
- 列表头尾增删快,中间增删慢,增删元素是常态
- 元素可以重复
- 最多可以包含2^32 - 1个元素
- 索引和python的列表一样
常用命令 - 增加数据
1.LPUSH key value1 value2
说明:从列表头部压入元素
返回:list最新的长度
例子:
LPUSH l1 a b c d e f
2.ROUSH key value1 value2
说明:从列表的尾部压入元素
返回:list最新的长度
3.RPOPPUSH src dst
说明:从列表src尾部弹出一个元素,压入到列表dst的头部
返回:被弹出的元素
4.LINSERT key after|before value newvalue
说明:在列表指定元素前或者后插入元素,不建议过多使用
返回:
1.如果命令执行成功,返回列表的长度
2.如果没有找到指定的元素,返回-1
3.如果key不存在,或者列表为空,返回0
常用命令 - 查看
1.查看列表中元素
LRANGE key start stop
原理就是遍历list
2.获取列表长度
LLEN key
常用命令 - 删除
1.从列表头部弹出一个元素
LPOP key
2.从列表尾部弹出一个元素
RPOP key
3.列表头部,阻塞弹出,列表为空时阻塞
BLPOP key timeout
说明:
- 如果当前list没有元素或不存在该list,就阻塞在这里
- 超时时间设置为0,就是永久阻塞,直到有数据可以弹出
- 如果多个客户端阻塞在同一个列表,使用 firist in firist service 原则,先到先服务
4.列表尾部,阻塞弹出,列表为空时阻塞
BRPOP key timeout
5. LREM key count value
说明:删除指定元素,从头到尾的遍历list
count大于0:表示从头部开始向列表尾部搜索,移除与value相等的元素,数量为count
count小于0:表示从尾部开始向表头搜索,移除与value相等的元素,数量为count
count等于0:表示移除表中所有与value相等的值
返回:被移除元素的数量
6.LTRIM key start stop
说明:保留指定范围内的元素
返回: ok
场景:
保存微博评论最后500条数据
LTRIM weibo:comments 0 499
常用命令 - 更新
1.LSET key index newvalue
说明:设置list指定索引的值
应用场景
1.存储微博评论,做切割,只保留最新的xx个
2. 生产者消费者模型,做中间层,存放生产者的任务