0

0

Redis研究(五)—列表类型

php中文网

php中文网

发布时间:2016-06-07 16:12:23

|

1445人浏览过

|

来源于php中文网

原创

一、介绍 列表类型(list)可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素或者获取列表的一个片段。 列表类型内部是使用双向链表实现的, 所以向列表两端添加元素的时间复杂度为O(1).获取越接近两端的元素速度越快。 所以不管原来有多少数据

一、介绍

列表类型(list)可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素或者获取列表的一个片段。

列表类型内部是使用双向链表实现的, 所以向列表两端添加元素的时间复杂度为O(1).获取越接近两端的元素速度越快。

所以不管原来有多少数据(无关),获取头部或者尾部的10条记录也是很快的。

不过使用链表的代价是通过索引访问元素比较慢。

列表类型适合用来记录日志,可以保证加入新日志的速度不会受到已有日志数量的影响。

一个列表类型键最多能容纳2^32-1个元素。

二、命令

1.向列表两端增加元素

lpush key value1 value2...左边增加
rpush key value1 value2...右边增加

\

上面三条命令执行后的列表情况依次为

【1】

【3 2 1】

【3 2 1 0 -1】

2.从列表两端弹出元素

lpop key 左边弹出一个元素,1.将左边弹出的元素从列表删除,2,。返回被移除的元素值
rpop key

IDChvzwvcD4KCjxwPjxzdHJvbmc+tO7F5Mq508NscHVzaLrNbHBvcCAgILvy1d8gcnB1c2i6zXJwb3Cw0cHQse21sdf21bs8L3N0cm9uZz48L3A+CjxwPjxzdHJvbmc+tO7F5Mq508NscHVzaLrNcnBvcCAgu/LV3yBycHVzaLrNbHBvcLDRwdCx7bWx1/a208HQPC9zdHJvbmc+PC9wPgo8cD48c3Ryb25nPjxicj4KPC9zdHJvbmc+PC9wPgo8cD48c3Ryb25nPjMuu/HIocHQse3UqsvYuPbK/Twvc3Ryb25nPjwvcD4KPHA+PHByZSBjbGFzcz0="brush:sql;">llen key\

复杂度O(1),不会像sql语句一样,需要遍历一遍数据表来统计条目数量,Redis会直接读取现成的值。


XYCMS建站系统php版1.4
XYCMS建站系统php版1.4

XYCMS建站系统PHP版非MVC框架,自己手写原生态普通代码,作为企业用,已经绰绰有余。软件运行效率中等,加入数据缓存后性能提高。假如用来学习,下载可以慢慢研究的,假如用来建站,可以选择购买商业版就行建站用。栏目类别:文章,人员信息,专题项目,招聘,下载,相册,单页【支持无限极分类】文章:可用作添加新闻,资讯,列表信息类栏目信息人员信息:可用作企业员工信息栏目内容添加或者维护专题项目:可用作企业

下载

4.获得列表片段

lrange key start stop
支持负索引,-1表示最右边的第一个元素

lrange numbers 0 -1可以获取列表中的所有元素

(1)start > stop ,返回空

(2)stop大于实际范围,返回列表最右边的元素(“到”字很重要)

\

5.删除列表中指定的值

lrem key count value
删除列表中钱count个值为value的元素 

count > 0 ,从左开始删除count个值为value的元素

count

count = 0 ,删除所有值为value的元素。

\

6.获得,设置指定索引的元素值

lindex key index 返回指定索引的元素
lset key index value 改变指定索引的值
\

7.只保留列表指定片段

ltrim key start end
删除索引范围  之外 的所有元素
\

8.向列表插入元素

linsert key before|after pivot value
从左到右查找值为pivot的元素,根据 before|after插入到前面还是后面
\

9.将元素从一个列表转到另一个列表

rpoplpush source destination
从source列表类型键的右边弹出一个元素,然后将其加入到destination列表类型键的左边,并返回这个元素的值,这个过程是原子的

当吧列表类型作为队列使用时,rpoplpush命令可以很直观的在多个队列中传递数据。

相关专题

更多
Word 字间距调整方法汇总
Word 字间距调整方法汇总

本专题整合了Word字间距调整方法,阅读下面的文章了解更详细操作。

2

2025.12.24

任务管理器教程
任务管理器教程

本专题整合了任务管理器相关教程,阅读下面的文章了解更多详细操作。

2

2025.12.24

AppleID格式
AppleID格式

本专题整合了AppleID相关内容,阅读专题下面的文章了解更多详细教程。

0

2025.12.24

csgo视频观看入口合集
csgo视频观看入口合集

本专题整合了csgo观看入口合集,阅读下面的文章了知道更多入口地址。

29

2025.12.24

yandex外贸入口合集
yandex外贸入口合集

本专题汇总了yandex外贸入口地址,阅读下面的文章了解更多内容。

58

2025.12.24

添加脚注通用方法
添加脚注通用方法

本专题整合了添加脚注方法合集,阅读专题下面的文章了解更多内容。

1

2025.12.24

重启电脑教程汇总
重启电脑教程汇总

本专题整合了重启电脑操作教程,阅读下面的文章了解更多详细教程。

3

2025.12.24

纸张尺寸汇总
纸张尺寸汇总

本专题整合了纸张尺寸相关内容,阅读专题下面的文章了解更多内容。

5

2025.12.24

Java Spring Boot 微服务实战
Java Spring Boot 微服务实战

本专题深入讲解 Java Spring Boot 在微服务架构中的应用,内容涵盖服务注册与发现、REST API开发、配置中心、负载均衡、熔断与限流、日志与监控。通过实际项目案例(如电商订单系统),帮助开发者掌握 从单体应用迁移到高可用微服务系统的完整流程与实战能力。

1

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
进程与SOCKET
进程与SOCKET

共6课时 | 0.3万人学习

Redis+MySQL数据库面试教程
Redis+MySQL数据库面试教程

共72课时 | 6.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号