当前位置:网站首页>Redis-列表
Redis-列表
2022-07-06 01:29:00 【冰点契约丶】
Redis列表(List)
介绍
- 单键多值
- Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
- 它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差
常用命令
从左边插入一个或多个值
lpush <key> <value1> <value2> ...
从右边插入一个或多个值
rpush <key> <value1> <value2> ...
从左边弹出一个值(值会被删除)
lpop <key>
从右边弹出一个值(值会被删除)
rpop <key>
从列表key1右边弹出一个值插入到key2左边
rpoplpush <key1> <key2>
根据索引批量获取元素(-1代表最后一个元素)
lrange <key> <start> <stop>
根据索引获取单个元素(从左到右)
lindex <key> <index>
获取列表长度
llen <key>
在value之前插入元素target
linsert <key> before <value> <target>
从左边删除n个值为value的元素
lrem <key> <n> <value>
将列表中索引为index的值替换为value
lset <key> <index> <value>
列表的底层数据结构
- List的数据结构为快速链表quickList
- 首先在列表元素较少的情况下会使用一块连续的内存存储,这个结构是ziplist,也即是压缩列表(类似于顺序表),它将所有的元素紧挨着一起存储,分配的是一块连续的内存,当数据量比较多的时候才会改成quicklist,因为普通的链表需要的附加指针空间太大,会比较浪费空间。比如这个列表里存的只是int类型的数据,结构上还需要两个额外的指针prev和next
- Redis将链表和ziplist结合起来组成了quicklist,也就是将多个ziplist使用双向指针串起来使用。这样既满足了快速的插入删除性能,又不会出现太大的空间冗余
边栏推荐
- 【全网最全】 |MySQL EXPLAIN 完全解读
- The basic usage of JMeter BeanShell. The following syntax can only be used in BeanShell
- [机缘参悟-39]:鬼谷子-第五飞箝篇 - 警示之二:赞美的六种类型,谨防享受赞美快感如同鱼儿享受诱饵。
- MATLB|实时机会约束决策及其在电力系统中的应用
- Some features of ECMAScript
- [the most complete in the whole network] |mysql explain full interpretation
- LeetCode 322. Change exchange (dynamic planning)
- 【Flask】响应、session与Message Flashing
- [Jiudu OJ 09] two points to find student information
- Remember that a version of @nestjs/typeorm^8.1.4 cannot be obtained Env option problem
猜你喜欢
Who knows how to modify the data type accuracy of the columns in the database table of Damon
SSH login is stuck and disconnected
【Flask】官方教程(Tutorial)-part1:项目布局、应用程序设置、定义和访问数据库
Huawei converged VLAN principle and configuration
电气数据|IEEE118(含风能太阳能)
Poj2315 football games
Blue Bridge Cup embedded stm32g431 - the real topic and code of the eighth provincial competition
Leetcode skimming questions_ Invert vowels in a string
Basic operations of databases and tables ----- non empty constraints
一图看懂!为什么学校教了你Coding但还是不会的原因...
随机推荐
[Arduino syntax - structure]
ctf. Show PHP feature (89~110)
Docker compose配置MySQL并实现远程连接
PHP error what is an error?
Paging of a scratch (page turning processing)
【Flask】官方教程(Tutorial)-part1:项目布局、应用程序设置、定义和访问数据库
How does the crystal oscillator vibrate?
[Yu Yue education] Liaoning Vocational College of Architecture Web server application development reference
【Flask】官方教程(Tutorial)-part2:蓝图-视图、模板、静态文件
Test de vulnérabilité de téléchargement de fichiers basé sur dvwa
3D model format summary
有谁知道 达梦数据库表的列的数据类型 精度怎么修改呀
Nmap: network detection tool and security / port scanner
leetcode刷题_反转字符串中的元音字母
[understanding of opportunity-39]: Guiguzi - Chapter 5 flying clamp - warning 2: there are six types of praise. Be careful to enjoy praise as fish enjoy bait.
SCM Chinese data distribution
Force buckle 9 palindromes
servlet(1)
Code review concerns
[detailed] several ways to quickly realize object mapping