Redis基础教程第6节 List
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,list是一个内部采用双向链表(double linked list) 结构,像列表两端添加元素的时间复杂度为O(1)。主要功能是push、pop、获取一个范围的所有值等,操作中key理解为链表的名字
千家信息网最后更新 2025年01月21日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安全错误
数据库的锁怎样保障安全
java表格更改数据库
网络安全调查问卷总结
计算机网络技术属于大类专业
网络安全教育篇视频
服务器怎么隐藏端口
测字取名软件开发
贵州梦晟网络技术服务有限公司
上海程序软件开发靠谱吗
网络安全法啥时候开始实施
软件开发全球业务怎么设置时间
幼儿园网络安全三字歌
山东游戏软件开发外包公司
云服务器硬件环境
什么服务器需要配合数据库
网络安全属于什么类知识
美国fda 药品数据库6
自己买云服务器一般下载什么系统
日本期货软件开发
工行软件开发介绍和背景
qt软件开发前景
海关重视网络安全
网络安全记心中的手抄报
c连接远程数据库
网络安全关于产品异构介绍
银行服务器招标
网络安全法的制度过程和组成
河北星捷软件开发公司图片
网络安全主要关注的方面
服务器配置需要哪些硬件
集中式数据库技术