当前位置:网站首页>Redis(六)-Redis的常用数据类型之list列表
Redis(六)-Redis的常用数据类型之list列表
2022-04-22 13:39:00 【码农飞哥】
您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦。
1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通
️ 2. Python爬虫专栏,系统性的学习爬虫的知识点。9.9元买不了吃亏,买不了上当,持续更新中 。python爬虫入门进阶
️ 3. Ceph实战,从原理到实战应有尽有。 Ceph实战
️ 4. Java高并发编程入门,打卡学习Java高并发。 Java高并发编程入门
5. 社区逛一逛,周周有福利,周周有惊喜。码农飞哥社区,飞跃计划
全网同名【码农飞哥】欢迎关注,个人VX: wei158556
简介
Redis中的列表是简单的字符串列表,你可以添加一个元素到列表的头部(左边)或者尾部(右边),可以用它来做微博时间轴列表,还可以充当队列
常用命令
- 从左边/右边插入一个或多个值
#从左边插入
lpush <key1> <value1> <value2> ......
#从右边插入
rpush <key1> <value1> <value2> ......
- 从左边/右边吐出一个值,取出一个值就删除这个值,值在键在,值亡键亡。
#从左边吐出
lpop <key1>
#从右边吐出
rpop <key1>



从上述示例中可以看出,从左边插入左边吐出的话,那就是先进后出的形式,从左边插入右边吐出的话那就是先进先出的形式。
- 从
<key1>列表右边吐出一个值,插到<key2>列表左边
rpoplpush <key1> <key2>
- 按照索引下标获得元素(从左到右), 其中
<start>为0时指左边第一个,<stop>为-1时指右边第一个,(0~-1 表示获取所有)
lrange <key> <start> <stop>

- 按照索引下标获得元素(从左到右)
lindex <key> <index>
- 获得列表长度
llen <key>

- 在
<value>的前面|后面插入<newvalue>插入值
#在`<value>` 的前面插入`<newvalue>` 插入值
linsert <key> before <value> <newvalue>
#`<value>` 的后面插入`<newvalue>` 插入值
linsert <key> after <value> <newvalue>

- 从
<value>的左边删除n个<value>(从左到右)
lrem <key1> <n> <value>

- 将列表
<key>下标为<index>的值替换成<value>
lset <key> <index> <value>

数据结构
List的数据结构为快速链表 quickList。
在列表元素较少的情况下使用一块连续的内存存储,这个结构是ziplist,也就是压缩列表。
它将所有的元素紧挨着一起存储,分配的是一块连续的内存。
当数据量较多的时候才会改成 quickList。
因为普通的链表需要的附加指针空间太大, 会比较浪费空间,比如这个列表中存的只是int类型数据,结构上海需要两个额外的指针prev和next。

Redis 将链表和ziplist结合起来组成了quicklist。也就是将多个ziplist 使用双向指针串起来使用。这样既满足了快速的插入删除性能,又不会出现太大的空间冗余。
详情可以了解这篇文章Redis(七)-Redis的list列表的数据结构-快速链表
参考
《Redis的设计与实现》
Redis基本类型及其数据结构
版权声明
本文为[码农飞哥]所创,转载请带上原文链接,感谢
https://feige.blog.csdn.net/article/details/124307873
边栏推荐
- OSPF basic configuration of routing basis
- Scratch编程入门
- Can ainai get out of the dilemma by 35 billion yuan?
- mysql FUNCTION xxx. CHARINDEX does not exist
- [zeekr_tech] Introduction to ros/ros 2
- How does MySQL sort by default when using the select statement without order by?
- Fizz enterprise microservice Gateway - service choreography, offering a big killer to end the BFF layer
- 华为云媒体査勇:华为云在视频AI转码领域的技术实践
- 指定Swagger接口文档中参数序列化组件为Newtonsoft.Json
- no main manifest attribute / . There is no main manifest attribute in jar
猜你喜欢

Functional limit of calculus

【Flutter 专题】91 图解 Dart 单线程实现异步处理之 Future (二) #yyds干货盘点#

Share the five cases of websites slowing down recently

Ora-1652 cannot extend temp tablespace
[live broadcast attack] the oneos system tutorial is fully launched. We invite you to study with ST and oneos!
![[fluent special topic] 91 illustration of future (II) yyds dry goods inventory of dart single thread asynchronous processing](/img/17/fafc0d6b91593e8357ceb62810feee.jpg)
[fluent special topic] 91 illustration of future (II) yyds dry goods inventory of dart single thread asynchronous processing

How does MySQL sort by default when using the select statement without order by?

Redis persistence

XML外部实体攻击原理以及实战(XXE)(1)

中英文会计&金融情绪词典
随机推荐
Algorithm --- reverse linked list (kotlin)
OSPF basic configuration of routing basis
io_uring技术在分布式云原生数据库中的应用
算法---反转链表(Kotlin)
是什么让我节省了60%的编码时间?使用MBG
最大匹配数,最小路径覆盖数,最大独立数,最小点覆盖数 定理总结
Rust implements Fibonacci number
Trying to access array offset on value of type int
MySQL 使用存储过程添加数据
HDU 2544 Dijkstra (template)
Functional limit of calculus
各省GTFP綠色全要素生產率面板數據(2004-2018年)
html文件中通过meta信息控制缓存有效果吗?目前用的多吗?
浅学一下Shell脚本(5)--函数,随机数,正则表达式
BPMN - how to draw a basic BPMN that conforms to well structured choreography?
Overview and deployment of redis (master-slave replication, sentinel mode and cluster)
如何开启Apache SkyWalking的自监控?
实现全链路重塑!从思维走向实践,数字化转型 IT 经营的成功路径
Heterogeneity and stability data of senior management team (including code, calculation process and original data)
MySQL uses stored procedures to add data