前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis 数据类型及操作-列表

Redis 数据类型及操作-列表

原创
作者头像
玖叁叁
发布2023-04-15 14:34:21
2310
发布2023-04-15 14:34:21
举报
文章被收录于专栏:玖叁叁玖叁叁

2. 列表(list)

列表是Redis中一种基于链表实现的数据类型,可以存储多个元素,并且支持在列表的两端进行元素的插入和删除操作。Redis中的列表可以用于实现队列和栈等数据结构。

2.1. LPUSH

LPUSH命令用于在列表的头部插入一个或多个元素,语法为:

代码语言:javascript
复制
LPUSH key value [value ...]

其中,key为键名,value为要插入的元素值。如果键不存在,则创建一个新的列表。插入多个元素时,元素的顺序与它们在命令中出现的顺序相反。

例如,要在键名为list的列表的头部插入元素abc,可以使用以下命令:

代码语言:javascript
复制
LPUSH list c b a

2.2. RPUSH

RPUSH命令用于在列表的尾部插入一个或多个元素,语法为:

代码语言:javascript
复制
RPUSH key value [value ...]

其中,key为键名,value为要插入的元素值。如果键不存在,则创建一个新的列表。插入多个元素时,元素的顺序与它们在命令中出现的顺序相同。

例如,要在键名为list的列表的尾部插入元素abc,可以使用以下命令:

代码语言:javascript
复制
RPUSH list a b c

2.3. LPOP

LPOP命令用于从列表的头部删除并返回一个元素,语法为:

代码语言:javascript
复制
LPOP key

其中,key为键名。如果列表为空,则返回nil

例如,要从键名为list的列表的头部删除并返回一个元素,可以使用以下命令:

代码语言:javascript
复制
LPOP list

2.4. RPOP

RPOP命令用于从列表的尾部删除并返回一个元素,语法为:

代码语言:javascript
复制
RPOP key

其中,key为键名。如果列表为空,则返回nil

例如,要从键名为list的列表的尾部删除并返回一个元素,可以使用以下命令:

代码语言:javascript
复制
RPOP list

2.5. LINDEX

LINDEX命令用于获取列表中指定位置的元素,语法为:

代码语言:javascript
复制
LINDEX key index

其中,key为键名,index为要获取的元素的位置。如果index为正整数,则表示从头部开始计数,从0开始;如果index为负整数,则表示从尾部开始计数,从-1开始。

例如,要获取键名为list的列表的第一个元素和最后一个元素,可以使用以下命令:

代码语言:javascript
复制
LINDEX list 0
LINDEX list -1

2.6. LLEN

LLEN命令用于获取列表的长度,即列表中包含的元素个数,语法为:

代码语言:javascript
复制
LLEN key

其中,key为键名。如果键不存在,则返回0。

例如,要获取键名为list的列表的长度,可以使用以下命令:

代码语言:javascript
复制
LLEN list

2.7. LRANGE

LRANGE命令用于获取列表中指定范围内的元素,语法为:

代码语言:javascript
复制
LRANGE key start stop

其中,key为键名,start为要获取的元素的起始位置,stop为要获取的元素的结束位置(包含在内)。如果startstop都为正整数,则表示从头部开始计数,从0开始;如果startstop都为负整数,则表示从尾部开始计数,从-1开始。如果stop小于start,则返回一个空列表。

例如,要获取键名为list的列表中从第二个元素到第四个元素(包含在内)的元素,可以使用以下命令:

代码语言:javascript
复制
LRANGE list 1 3

2.8. LINSERT

LINSERT命令用于在列表中指定元素的前面或后面插入一个新元素,语法为:

代码语言:javascript
复制
LINSERT key BEFORE|AFTER pivot value

其中,key为键名,pivot为指定的元素值,value为要插入的新元素值。如果列表中存在多个与pivot相等的元素,则插入操作会在最左边的元素之前或最右边的元素之后执行。如果pivot不存在于列表中,则不进行任何操作。

例如,要在键名为list的列表中,在元素b的前面插入新元素x,可以使用以下命令:

代码语言:javascript
复制
LINSERT list BEFORE b x

2.9. LREM

LREM命令用于从列表中删除指定数量的元素,语法为:

代码语言:javascript
复制
LREM key count value

其中,key为键名,value为要删除的元素值,count为要删除的元素数量。如果count为正整数,则表示从头部开始查找并删除指定数量的与value相等的元素;如果count为负整数,则表示从尾部开始查找并删除指定数量的与value相等的元素;

如果count为0,则表示删除所有与value相等的元素。如果value不存在于列表中,则不进行任何操作。

例如,要在键名为list的列表中删除所有与元素a相等的元素,可以使用以下命令:

代码语言:javascript
复制
LREM list 0 a

2.10. LPUSHX

LPUSHX命令用于在列表的头部插入一个新元素,仅在列表已经存在时才会执行插入操作,语法为:

代码语言:javascript
复制
LPUSHX key value

其中,key为键名,value为要插入的新元素值。如果键不存在,则不进行任何操作。

例如,要在键名为list的列表头部插入新元素x,仅在该列表已经存在时才执行插入操作,可以使用以下命令:

代码语言:javascript
复制
LPUSHX list x

2.11. RPUSHX

RPUSHX命令用于在列表的尾部插入一个新元素,仅在列表已经存在时才会执行插入操作,语法为:

代码语言:javascript
复制
RPUSHX key value

其中,key为键名,value为要插入的新元素值。如果键不存在,则不进行任何操作。

例如,要在键名为list的列表尾部插入新元素x,仅在该列表已经存在时才执行插入操作,可以使用以下命令:

代码语言:javascript
复制
RPUSHX list x

2.12. LTRIM

LTRIM命令用于截取列表中指定范围内的元素,从而保留指定范围内的元素,同时删除其余元素,语法为:

代码语言:javascript
复制
LTRIM key start stop

其中,key为键名,start为要保留的元素的起始位置,stop为要保留的元素的结束位置(包含在内)。如果startstop都为正整数,则表示从头部开始计数,从0开始;如果startstop都为负整数,则表示从尾部开始计数,从-1开始。如果stop小于start,则保留一个空列表。注意,LTRIM命令会修改原有列表,因此谨慎使用。

例如,要在键名为list的列表中保留第二个元素到第四个元素(包含在内)的元素,删除其余元素,可以使用以下命令:

代码语言:javascript
复制
LTRIM list 1 3

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2. 列表(list)
    • 2.1. LPUSH
      • 2.2. RPUSH
        • 2.3. LPOP
          • 2.4. RPOP
            • 2.5. LINDEX
              • 2.6. LLEN
                • 2.7. LRANGE
                  • 2.8. LINSERT
                    • 2.9. LREM
                      • 2.10. LPUSHX
                        • 2.11. RPUSHX
                          • 2.12. LTRIM
                          相关产品与服务
                          云数据库 Redis
                          腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档