Redis基础教程第6节 List
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,list是一个内部采用双向链表(double linked list) 结构,像列表两端添加元素的时间复杂度为O(1)。主要功能是push、pop、获取一个范围的所有值等,操作中key理解为链表的名字
千家信息网最后更新 2026年11月02日Redis基础教程第6节 List
list是一个内部采用双向链表(double linked list) 结构,像列表两端添加元素的时间复杂度为O(1)。主要功能是push、pop、获取一个范围的所有值等,操作中key理解为链表的名字。
链表的最大长度是(2的32次方)。我们可以通过push,pop操作从链表的头部或者尾部添加删除元素。这使得list既可以用作栈,也可以用作队列。
list的pop操作均有阻塞版本的,当我们[lr]pop一个list对象时,如果list是空,或者不存在,会立即返回nil。但是阻塞版本的b[lr]pop可以则可以阻塞,当然可以加超时时间,超时后也会返回nil。为什么要阻塞版本的pop呢,主要是为了避免轮询。
举个简单的例子如果我们用list来实现一个工作队列。执行任务的thread可以调用阻塞版本的pop去获取任务这样就可以避免轮询去检查是否有任务存在。当任务来时候工作线程可以立即返回,也可以避免轮询带来的延迟。
LPUSH Key value 左边插入
RPUSH Key value 右边插入
LPop key 左边弹出
RPop key 右边弹出
BLPOP,BRPOP阻塞式左/右弹出
lpush
129.223.248.154:6379> lpush members ben(integer) 1129.223.248.154:6379> lpush members jeff(integer) 2129.223.248.154:6379> lpush members mike jeme(integer) 6
lpop
129.223.248.154:6379> lpop members"raymond"129.223.248.154:6379> rpop members"ben"
llen
129.223.248.154:6379> llen members(integer) 4
lrange (lrange firstqueue 0 -1 列出list中全部元素值)
129.223.248.154:6379> lrange members 0 21) "richard"2) "jemery"3) "mike"129.223.248.154:6379> llen members(integer) 4129.223.248.154:6379> lrange members 0 31) "richard"2) "jemery"3) "mike"4) "jeff"129.223.248.154:6379> lrange members 0 41) "richard"2) "jemery"3) "mike"4) "jeff"129.223.248.154:6379> lrange members 0 -11) "richard"2) "jemery"3) "mike"4) "jeff"5) "derek"
rpop
129.223.248.154:6379> rpop members"derek"129.223.248.154:6379> lpop members"richard"129.223.248.154:6379> lrange members 0 -11) "jemery"2) "mike"3) "jeff"
lindex
129.223.248.154:6379> lindex members 1"mike"129.223.248.154:6379> llen members(integer) 3129.223.248.154:6379> rpush firstqueue 3 2 1(integer) 3129.223.248.154:6379> lrange firstqueue 0 -11) "3"2) "2"3) "1"129.223.248.154:6379> lpush secqueue 3 2(integer) 2129.223.248.154:6379> lrange secqueue 0 -11) "2"2) "3"
rpoplpush 从第一个list的尾部移除元素并添加到第二个list的头部,最后返回被移除的元素值,整个操作是原子的.如果第一个list是空或者不存在返回nil
129.223.248.154:6379> rpoplpush firstqueue secqueue"1"129.223.248.154:6379> lrange firstqueue 0 -11) "3"2) "2"129.223.248.154:6379> lrange secqueue 0 -11) "1"2) "2"3) "3"129.223.248.154:6379>
阻塞
元素
任务
版本
右边
头部
尾部
时间
队列
工作
复杂
最大
两端
例子
功能
原子
双向
可以通过
名字
复杂度
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
华服互联网科技靠谱吗
互联网科技资迅
中资互联网科技
北京互联网科技有限公司
猪兼强互联网科技
礼当家互联网科技
广州互联网络科技有限公司
电子科技大学互联网
西安互联网科技公司
上海万想互联网科技
长亮科技互联网金融
成都狮子座互联网科技
金融科技和互联网金融
茂名市互联网科技产业园
洛阳昕诺飞互联网科技有限公司
开一家科技互联网公司需要多少钱
互联网科技和信息
深圳育鹏互联网科技有限公司招聘
互联网行业科技股
杭州科技互联网公司有哪些
万易互联网科技
深圳期待互联网科技
镁科技互联网资讯平台
团飞科技与伯堂互联网服务平台
互联网对科技的发展
互联网科技商业
区块链结合互联网科技
唯美互联网科技
科技互联网公司两年变化
陕西彩京云互联网科技有限公司