Redis List
本章介绍redis 的List的数据结构
Redis列表是字符串值的链表。Redis列表经常用于:
1、实现堆栈和队列
2、为后台工作系统提供队列管理
例如:
第一种情况,将List视为一种先进先出的队列
Treat a list like a queue (first in, first out):
LPUSH work:queue:ids 102
LPUSH work:queue:ids 130
RPOP work:queue:ids
RPOP work:queue:ids
第二种情况 first in last out
先进后出
LPUSH work:queue:ids 101
LPUSH work:queue:ids 290
LPOP work:queue:ids
LPOP work:queue:ids
第三种情况
原子性的操作,从一个list push 出来到另一个list中
LPUSH board:todo:ids 101
LPUSH board:todo:ids 237
LMOVE board:todo:ids boadr:in-process:ids LEFT LEFT
LRANG board:todo:ids 0 -1
LRANG board:in-process:ids 0 -1
LMOVE 命令必须redis版本大于6.2.0 才可以
LMOVE 从todo的list队列移动到in-process 队列中,原子操作
限制
1 << 32 -1(4294967295)个元素
基本命令
LPUSH 将一个新元素添加到列表的头部
RPUSH 将一个新元素添加到列表的尾部
LPOP 从头部移除
RPOP 从尾部移除
LLEN list长度
LMOVE 原子移动
LTRIM 保留特定区间的元素
list支持多个阻塞的命令
BLPOP
移除并获取列表的第一个元素,如果没有阻塞