Redis常用命令有哪些?

Redis是一款高性能的内存数据库,常用于缓存、消息队列、实时统计等场景,掌握Redis的使用命令是高效操作Redis的基础,本文将详细介绍Redis的核心命令及其使用方法,涵盖键值操作、数据类型操作、事务、持久化等关键功能。

redis使用命令
(图片来源网络,侵删)

键值操作命令

Redis中的所有数据都是以键值对形式存储的,键是字符串类型,值可以是字符串、哈希、列表、集合、有序集合等多种数据类型,以下是常用的键值操作命令:

  1. 设置键值

    • SET key value [EX seconds] [PX milliseconds] [NX|XX]:设置键值,可指定过期时间(EX秒或PX毫秒),NX表示键不存在时才设置,XX表示键存在时才设置。
    • 示例:SET name "Alice" EX 60设置name键的值为”Alice”,60秒后过期。
  2. 获取键值

    • GET key:获取键对应的值,若键不存在则返回nil。
    • 示例:GET name返回”Alice”。
  3. 删除键

    redis使用命令
    (图片来源网络,侵删)
    • DEL key [key ...]:删除一个或多个键,返回删除的键数量。
    • 示例:DEL name删除name键。
  4. 键是否存在

    • EXISTS key:检查键是否存在,存在返回1,否则返回0。
    • 示例:EXISTS name返回1。
  5. 键过期时间操作

    • EXPIRE key seconds:设置键的过期时间(秒)。
    • TTL key:查看键的剩余过期时间(秒),-1表示永不过期,-2表示键不存在。
    • 示例:EXPIRE name 30设置30秒后过期,TTL name返回剩余时间。
  6. 键重命名

    • RENAME key newkey:重命名键,若新键已存在则覆盖。
    • RENAMENX key newkey:新键不存在时才重命名。
    • 示例:RENAME name username将name重命名为username。

数据类型操作命令

Redis支持5种基本数据类型,每种类型都有专属的操作命令。

redis使用命令
(图片来源网络,侵删)

字符串(String)

字符串是最简单的数据类型,可以存储文本、JSON、序列化对象等。

  • 批量操作

    • MSET key value [key value ...]:批量设置多个键值。
    • MGET key [key ...]:批量获取多个键的值。
    • 示例:MSET key1 "v1" key2 "v2"MGET key1 key2返回[“v1”, “v2”]。
  • 数值递增/递减

    • INCR key:键值递增1(值需为整数)。
    • DECR key:键值递减1。
    • INCRBY key increment:按指定值递增。
    • 示例:INCR visits,若visits初始为10,执行后为11。

哈希(Hash)

哈希是键值对集合,适合存储对象(如用户信息)。

  • 设置和获取字段

    • HSET key field value:设置哈希字段值。
    • HGET key field:获取字段值。
    • HGETALL key:获取哈希所有字段和值。
    • 示例:HSET user:1 name "Bob" age 30HGETALL user:1返回name和Bob、age和30。
  • 删除字段

    • HDEL key field [field ...]:删除一个或多个字段。
    • 示例:HDEL user:1 age删除age字段。

列表(List)

列表是字符串有序集合,可重复,常作消息队列。

  • 从左侧/右侧插入元素

    • LPUSH key value [value ...]:从左侧(头部)插入一个或多个元素。
    • RPUSH key value [value ...]:从右侧(尾部)插入。
    • 示例:LPUSH queue "task1",队列左侧为[“task1”]。
  • 弹出元素

    • LPOP key:从左侧弹出元素。
    • RPOP key:从右侧弹出。
    • 示例:LPOP queue返回”task1″。
  • 获取列表长度和范围

    • LLEN key:返回列表长度。
    • LRANGE key start stop:获取列表指定范围元素(0为第一个,-1为最后一个)。
    • 示例:LRANGE queue 0 -1返回整个列表。

集合(Set)

集合是无序且不重复的字符串集合,常用于标签、去重。

  • 添加和删除元素

    • SADD key member [member ...]:添加一个或多个元素。
    • SREM key member [member ...]:删除元素。
    • 示例:SADD tags "redis" "db"SREM tags "db"删除”db”。
  • 集合运算

    • SINTER key [key ...]:交集。
    • SUNION key [key ...]:并集。
    • SDIFF key [key ...]:差集。
    • 示例:SINTER set1 set2返回两个集合的交集。

有序集合(ZSet)

有序集合是带分数的集合,元素按分数排序,常用于排行榜。

  • 添加元素和设置分数

    • ZADD key score member [score member ...]:添加元素并设置分数。
    • 示例:ZADD leaderboard 100 "Alice" 90 "Bob"
  • 按分数范围获取元素

    • ZRANGE key start stop [WITHSCORES]:按分数从低到高获取元素。
    • ZREVRANGE key start stop [WITHSCORES]:从高到低获取。
    • 示例:ZRANGE leaderboard 0 -1 WITHSCORES返回所有元素及分数。
  • 按分数范围删除元素

    • ZREMRANGEBYSCORE key min max:删除分数在[min, max]之间的元素。
    • 示例:ZREMRANGEBYSCORE leaderboard 0 89删除分数小于90的元素。

高级功能命令

事务(Transaction)

Redis事务是一组命令的序列化执行,要么全部执行,要么全部不执行。

  • MULTI:开启事务。
  • EXEC:执行事务中的所有命令。
  • DISCARD:取消事务。
  • 示例:
    MULTI
    SET key1 "v1"
    SET key2 "v2"
    EXEC

    执行后key1和key2同时被设置。

持久化

Redis支持两种持久化方式:RDB和AOF。

  • RDB(Redis Database)

    • SAVE:同步保存数据到磁盘(阻塞服务器)。
    • BGSAVE:异步保存(推荐)。
    • 示例:BGSAVE在后台生成RDB快照。
  • AOF(Append Only File)

    • APPENDONLY yes:启用AOF持久化。
    • BGREWRITEAOF:重写AOF文件(压缩日志)。
    • 示例:BGREWRITEAOF优化AOF文件大小。

常用命令总结表

功能分类命令示例说明
键值操作SET key value EX 60设置键值并指定过期时间
GET key获取键值
DEL key删除键
字符串操作INCR key数值递增1
MSET k1 v1 k2 v2批量设置键值
哈希操作HSET key field value设置哈希字段值
HGETALL key获取哈希所有字段和值
列表操作LPUSH key value从左侧插入元素
LRANGE key 0 -1获取列表所有元素
集合操作SADD key member添加元素到集合
SINTER key1 key2求集合交集
有序集合操作ZADD key score member添加元素并设置分数
ZRANGE key 0 -1 WITHSCORES获取有序集合所有元素及分数
事务操作MULTI … EXEC执行事务
持久化操作BGSAVE异步保存RDB快照
BGREWRITEAOF重写AOF文件

相关问答FAQs

问题1:Redis如何设置键的过期时间?有哪些注意事项?
解答:使用EXPIRE key secondsSETEX key seconds value命令设置过期时间,注意事项包括:(1)过期时间设置后可通过TTL key查看剩余时间;(2)对已存在的键设置过期时间会覆盖原有过期时间;(3)删除键或覆盖键值会清除过期时间;(4)持久化时,RDB会保存过期键的状态,而AOF通过记录DEL或EXPIRE命令实现过期逻辑。

问题2:Redis的列表(List)和集合(Set)有什么区别?分别适用于什么场景?
解答:列表(List)是有序且可重复的元素集合,支持双向操作(如LPUSH/RPOP),适用于消息队列、任务列表等需要顺序和重复元素的场景;集合(Set)是无序且不重复的元素集合,支持集合运算(如并集、交集),适用于标签系统、去重统计等需要唯一性和集合操作的场景,用列表实现任务队列,用集合实现用户兴趣标签的交集查询。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/402699.html<

(0)
运维的头像运维
上一篇2025-10-16 05:57
下一篇 2025-10-16 06:01

相关推荐

  • C程序设计师招聘,需具备哪些核心技能?

    在当今数字化转型的浪潮中,C程序设计师作为软件开发领域的核心力量,其招聘需求持续保持旺盛态势,C语言凭借其高效性、灵活性和对硬件的深度控制能力,在操作系统、嵌入式系统、游戏引擎、高性能计算等关键领域仍不可替代,企业对C程序设计师的招聘不仅关注技术硬实力,更重视工程实践能力和问题解决素养,以下从岗位职责、任职要求……

    2025-11-18
    0
  • C语言程序员招聘要求有哪些核心技能?

    在C语言程序员的招聘过程中,企业通常会根据项目需求、技术栈复杂度及团队规模制定具体的要求,涵盖基础知识、工程能力、项目经验及软技能等多个维度,以下从不同层级和岗位方向详细拆解招聘要求,帮助求职者明确目标方向,也助力企业精准筛选人才,基础能力要求扎实的C语言基础是入门门槛,核心要求包括对语言特性的深度理解和熟练应……

    2025-11-17
    0
  • 智联招聘电信笔试题库有哪些核心考点?

    智联招聘作为国内领先的综合人力资源服务提供商,其电信行业相关岗位的笔试题库设计具有系统性、专业性和针对性,旨在全面考察候选人的专业知识、逻辑思维能力、行业认知及岗位匹配度,题库内容通常涵盖电信基础知识、通信技术原理、行业动态分析、职业素养评估等多个维度,结合不同岗位(如技术研发、市场运营、产品经理等)的核心需求……

    2025-11-16
    0
  • Windows Git命令行怎么用?

    Windows 系统下的 Git 命令行工具是开发者日常工作中不可或缺的高效工具,它通过命令行界面提供了强大的版本控制功能,让用户能够精确管理代码的每一次变更,无论是简单的提交代码,还是复杂的分支管理、合并冲突解决,Git 命令行都能以简洁的指令完成操作,相比图形化界面,命令行在批量处理、自动化脚本编写以及远程……

    2025-11-12
    0
  • Android SQLite3命令如何使用?

    在Android开发中,SQLite3是一个轻量级的关系型数据库,广泛应用于本地数据存储,开发者可以通过命令行或代码直接操作SQLite3数据库,本文将详细介绍Android环境下SQLite3的常用命令及其操作方法,要使用SQLite3命令,需要通过Android设备的shell环境进入,开发者可以通过adb……

    2025-11-09
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注