Redis 列表( List )
admin
2024-03-01 01:29:11

【一】简介

单键多值

 Redis 列表是简单地字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

它的底层实际是创想列表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会比较差。

---------------------------------------------------------------------------------------------------------------------------------

>> v1 >> v2 >> v3 >> v4 >> v5 >> v6 >> v7 >> v8 >> v9 >> v10 >> v11 >> v12 >> v13 >> v14 >>

<< v1 << v2 << v3 << v4 << v5 << v6 << v7 << v8 << v9 << v10 << v11 << v12 << v13 << v14 <<

---------------------------------------------------------------------------------------------------------------------------------

【二】常用命令

 lpush/rpush k v1 v2 v3 ...

从 左边/右边插入一个或多个值

 lpop/rpop k 从左边/右边吐出一个值。值在键在,值光键亡

 

 rpoplpush k1 k2

从 k1 列表的右边吐出一个值,插到 k2 列表的右边

 lrange k 0 2

按照0和2这两个索引获得元素(从左到右)

 lrange k 0 -1

0代表左边第一个,-1表示最右边第一个

lindex k 1

获取 k 中下标为1的元素

linsert k before v1 v2

在 k 中 的 v1 后面插入 v2

 lrem k 2 v 

从左边删除 k 中 的两个 v (从左到右)

 lset key 2 v

将 k 中下标为2的值替换成value

【三】数据结构

 List 的数据结构为快速链表 quickList 。

首先在列表元素较少的情况下会使用一块连续的内存存储,这个结构是 ziplist ,也即是压缩列表。

它将所有的元素紧挨着一起存储,分配的是一块连续的内存。

当数据量比较多的时候才会改成  quickList 。

因为普通的链表需要的附加指针空间太大,会比较浪费空间。比如这个列表里存的只是 int 类型的数据,结构上还需要额外的指针 prev 和 next。

  ziplist <<>> ziplist <<>> ziplist <<>> ziplist <<>> ziplist <<>> ziplist <<>> ziplist <<>> ziplist

相关内容

热门资讯

上海旅游节大巡游花车阵容抢先看... 2026上海旅游节大巡游9月12日外滩启幕,21辆全新主题花车携手21支境内外表演方队联袂登场,邀你...
原创 8... 上周门诊来了位 62 岁的张阿姨,得糖尿病快五年了,平时管嘴特别严,糖果、点心、甜饮料一概不碰,连水...
原创 餐... 2026年9月8日晚,南京浦口区泰冯路29号,墨语江南·阿婆菜餐厅户外帐篷里,灯火温润,其间还天降喜...
原创 它... 人到中年肝肾精血慢慢耗损,容易腰膝酸软、头晕眼花、精神疲惫。黄精性平,擅长补肝肾、益精血,搭配不同食...
同样卖奶茶,为何古茗赚了15亿... 出品/联商专栏 撰文/老刀 编辑/蔡建桢 今年上半年,蜜雪、古茗、霸王茶姬、茶百道、沪上阿姨全部盈利...