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:从头部开始删除 countvalue
      • 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 中的列表数据。

相关推荐
数据库小组7 分钟前
2026 年,MySQL 到 SelectDB 同步为何更关注实时、可观测与可校验?
数据库·mysql·数据库管理工具·数据同步·ninedata·selectdb·迁移工具
华科易迅9 分钟前
MybatisPlus增删改查操作
android·java·数据库
Kethy__29 分钟前
计算机中级-数据库系统工程师-计算机体系结构与存储系统
大数据·数据库·数据库系统工程师·计算机中级
SHoM SSER32 分钟前
MySQL 数据库连接池爆满问题排查与解决
android·数据库·mysql
熬夜的咕噜猫1 小时前
MySQL备份与恢复
数据库·oracle
jnrjian1 小时前
recover database using backup controlfile until cancel 假recover,真一致
数据库·oracle
lifewange2 小时前
java连接Mysql数据库
java·数据库·mysql
大妮哟2 小时前
postgresql数据库日志量异常原因排查
数据库·postgresql·oracle
还是做不到嘛\.3 小时前
Dvwa靶场-SQL Injection (Blind)-基于sqlmap
数据库·sql·web安全
不写八个3 小时前
PHP教程004:php链接mysql数据库
数据库·mysql·php