Redis 中列表(List)常见命令详解

列表(List)常见命令详解

在 Redis 中,列表(List)是一种线性数据结构,允许在列表的头部和尾部进行高效的元素添加和删除操作。列表中的元素是有序的,并且可以重复。以下是 Redis 中列表相关命令的详细解释和用法:

添加元素
  1. LPUSH key value value ...

    • 功能:将一个或多个值插入到列表头部。如果列表不存在,会创建一个新的列表。
    • 示例 :LPUSH mylist "a" 会将元素 "a" 添加到 mylist 的头部。
  2. RPUSH key value value ...

    • 功能:将一个或多个值插入到列表尾部。如果列表不存在,会创建一个新的列表。
    • 示例 :RPUSH mylist "b" 会将元素 "b" 添加到 mylist 的尾部。
插入元素
  1. LINSERT key BEFORE|AFTER pivot value
    • 功能 :在列表中找到值等于 pivot 的元素之前或之后插入 value。如果列表不存在或 pivot 不存在,则不执行任何操作。
    • 示例 :LINSERT mylist BEFORE "a" "c" 会在列表 mylist 中找到 "a" 之前插入 "c"。
获取元素范围
  1. LRANGE key start stop
    • 功能 :获取列表指定范围内的元素。索引从 0 开始,stop 为 -1 时表示列表的最后一个元素。
    • 示例 :LRANGE mylist 0 -1 会获取 mylist 中的所有元素。
修改元素
  1. LSET key index value
    • 功能:通过索引设置列表指定位置的值。如果索引超出范围,则返回错误。
    • 示例 :LSET mylist 1 "d" 会将 mylist 中索引为 1 的元素设置为 "d"。
删除元素
  1. LREM key count value
    • 功能 :根据参数 count 的值,从列表中删除指定数量的 value。
      • count > 0:从头部开始删除 count 个 value。
      • count < 0:从尾部开始删除 |count| 个 value。
      • count = 0:删除所有匹配的 value。
    • 示例 :LREM mylist 2 "a" 会从 mylist 中删除前两个 "a"。
弹出元素
  1. LPOP key

    • 功能 :移除并返回列表的第一个元素。如果列表为空,则返回 nil。
    • 示例 :LPOP mylist 会移除 mylist 的第一个元素并返回它。
  2. RPOP key

    • 功能 :移除并返回列表的最后一个元素。如果列表为空,则返回 nil。
    • 示例 :RPOP mylist 会移除 mylist 的最后一个元素并返回它。
获取单个元素
  1. LINDEX key index
    • 功能 :通过索引获取列表中的元素。如果索引超出范围,则返回 nil。
    • 示例 :LINDEX mylist 0 会获取 mylist 中的第一个元素。
获取列表长度
  1. LLEN key
    • 功能 :返回列表的长度。如果列表不存在,则返回 0。
    • 示例 :LLEN mylist 会返回 mylist 的长度。

这些命令提供了对列表数据结构的丰富操作,使得 Redis 能够高效地处理线性数据结构。通过合理使用这些命令,可以灵活地管理和查询存储在 Redis 中的列表数据。

相关推荐
这个DBA有点耶8 小时前
函数索引的“完全一致”有多苛刻:写法、字符集、类型,差一处就失效
数据库·mysql·代码规范
星恒随风8 小时前
MySQL 从零入门(三):表的约束详解
linux·服务器·数据库·笔记·mysql
Alluxio9 小时前
Alluxio + OCI:为 AI 工作负载实现亚毫秒访问延迟与可扩展吞吐
运维·数据库·人工智能·分布式·缓存·ai·语言模型
虹科网络安全12 小时前
Search on Flex:用分层存储承载更大规模的 Redis 搜索索引
经验分享·redis·艾体宝·艾体宝it
数据库急诊室_阿哲12 小时前
一次加索引建议的复核记录:从报告到签字
数据库·ai数据库
青瓦梦滋13 小时前
Redis主从复制
服务器·数据库·redis·缓存·bootstrap
慧都小妮子14 小时前
Wyn商业智能国产数据库适配:数据接入、分析缓存与审计日志验证清单
数据库·数据分析·数据可视化·审计日志·商业智能
Joy T15 小时前
Redis Lua 原子限流:Lua 脚本、竞态条件与并发控制
数据库·redis·lua·限流·竞态条件·redis scripting
杨凯凡15 小时前
MySQL 死锁怎么排查?InnoDB 锁等待与 Spring Boot 整事务重试实战
数据库·spring boot·mysql
Aloudata15 小时前
Claude 做数据分析的这两年:一份复盘与发展线索
大数据·数据库·人工智能·数据挖掘·数据分析·dataagent