Redis-3.0.503 List类型操作-03

1.List类型

1.1 List类型是Redis中,一种单键多值类型,是简单的字符串列表。按照插入顺序排序。

它底层实际是个双向链表,对两端的操作性很高,可以添加一个元素到列表的头部(左边)或者是尾部(右边),通过索引下标的操作中间节点性能较差

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

因为双向链表占用的内存比压缩列表要多, 所以当创建新的列表键时, 列表会优先考虑使用压缩列表, 并且在有需要的时候, 才从压缩列表实现转换到双向链表实现。

压缩列表转化成双向链表:

创建新列表时 redis 默认使用 redis_encoding_ziplist 编码, 当以下任意一个条件被满足时, 列表会被转换成redis_encoding_linkedlist 编码:

单字符串的值长度超过 server.list_max_ziplist_value (默认值为 64 )。
ziplist 包含的节点超过 server.list_max_ziplist_entries (默认值为 512 )。

这两个条件是可以修改的,在 redis.conf 中:

list-max-ziplist-value 64
list-max-ziplist-entries 512

在3.2之后,ziplist被quicklist替代

2.List类型常用命令

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

lpop/rpop 从左边或右边弹出一个值

lrange 按照索引下标获得元素(从左到右),0 -1 表示获取从0到最后的所有值

lindex 按照索引下标获取元素(从左到右)

llen 获取列表长度

linsert key before/after value newValue 在指定值前或者值后插入新数据

lrem key n value 从左边删除n个指定值(从左到右)

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

posted @   别停  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示