菜鸟科技网

Redis cmd命令有哪些常用操作?

Redis作为高性能的内存数据库,其命令行接口(CLI)是开发者日常操作的核心工具,通过Redis CLI,用户可以直接执行数据操作、配置管理和性能监控等任务,以下将详细介绍Redis常用命令的分类、功能及使用场景,帮助用户全面掌握Redis CLI的操作方法。

Redis cmd命令有哪些常用操作?-图1
(图片来源网络,侵删)

数据操作命令

Redis支持多种数据类型,每种类型都有专属的操作命令,以下是主要数据类型的常用命令:

字符串(String)

字符串是Redis最基本的数据类型,支持二进制安全存储,常用命令包括:

  • SET key value [EX seconds] [PX milliseconds] [NX|XX]:设置键值对,可通过EXPX设置过期时间,NX表示键不存在时才设置,XX表示键存在时才设置。
  • GET key:获取键对应的值。
  • INCR key:将键的值加1(值必须为整数)。
  • DECR key:将键的值减1。
  • APPEND key value:向键的值追加内容。

哈希(Hash)

哈希表存储键值对集合,适合存储对象结构,常用命令:

  • HSET key field value:设置哈希表字段值。
  • HGET key field:获取哈希表字段值。
  • HGETALL key:获取哈希表所有字段和值。
  • HDEL key field [field ...]:删除哈希表指定字段。
  • HINCRBY key field increment:对哈希表字段值递增指定整数。

列表(List)

列表是字符串元素的有序集合,支持双向操作,常用命令:

Redis cmd命令有哪些常用操作?-图2
(图片来源网络,侵删)
  • LPUSH key value [value ...]:向列表头部添加元素。
  • RPUSH key value [value ...]:向列表尾部添加元素。
  • LPOP key:移除并返回列表头部元素。
  • RPOP key:移除并返回列表尾部元素。
  • LRANGE key start stop:获取列表指定范围的元素(0表示第一个,-1表示最后一个)。

集合(Set)

集合是无序且唯一的字符串元素集合,常用命令:

  • SADD key member [member ...]:向集合添加成员。
  • SMEMBERS key:获取集合所有成员。
  • SREM key member [member ...]:移除集合指定成员。
  • SINTER key [key ...]:获取多个集合的交集。
  • SUNION key [key ...]:获取多个集合的并集。

有序集合(Sorted Set)

有序集合是带有分数的成员集合,成员按分数排序,常用命令:

  • ZADD key score member [score member ...]:添加成员及其分数。
  • ZRANGE key start stop [WITHSCORES]:按分数从小到大获取成员。
  • ZREVRANGE key start stop [WITHSCORES]:按分数从大到小获取成员。
  • ZINCRBY key increment member:增加成员的分数。
  • ZREM key member [member ...]:移除指定成员。

键管理命令

键管理命令用于控制Redis中的键的生命周期和属性:

  • DEL key [key ...]:删除一个或多个键。
  • EXISTS key:检查键是否存在(返回1或0)。
  • EXPIRE key seconds:设置键的过期时间(秒)。
  • TTL key:获取键的剩余生存时间(秒),返回-1表示永不过期,-2表示键不存在。
  • TYPE key:返回键的数据类型(如stringhash等)。
  • KEYS pattern:匹配符合模式的键(生产环境慎用,可能阻塞服务器)。

高级功能命令

Redis还提供了高级功能命令,如事务、发布订阅和Lua脚本:

Redis cmd命令有哪些常用操作?-图3
(图片来源网络,侵删)
  • MULTI/EXEC/DISCARD:实现事务操作,MULTI开启事务,EXEC执行事务,DISCARD取消事务。
  • PUBLISH channel message:向指定频道发布消息。
  • SUBSCRIBE channel [channel ...]:订阅频道,接收消息。
  • EVAL "script" numkeys key [key ...] arg [arg ...]:执行Lua脚本,numkeys表示键的数量。

性能与监控命令

  • INFO [section]:获取Redis服务器信息,如servermemorystats等。
  • MONITOR:实时监控Redis接收到的命令(生产环境慎用)。
  • SLOWLOG [subcommand]:管理慢查询日志,subcommand可以是GETLENRESET

命令使用示例

以下通过表格展示部分命令的用法:

命令 示例 功能说明
SET SET user:1001 "Alice" EX 3600 设置键user:1001的值为"Alice",过期时间为3600秒
HSET HSET user:1001 name "Alice" age 30 向哈希表user:1001添加字段nameage
LPUSH LPUSH messages "Hello" 向列表messages头部添加元素"Hello"
ZADD ZADD leaderboard 100 "player1" 向有序集合leaderboard添加成员player1,分数为100
TTL TTL user:1001 查询键user:1001的剩余生存时间

相关问答FAQs

Q1: Redis命令执行失败时如何排查问题?
A: 首先检查命令语法是否正确,例如键名是否包含空格、参数类型是否匹配,通过INFO commandstats查看命令统计信息,确认是否因高频执行导致性能问题,检查Redis日志(默认位于/var/log/redis/redis-server.log)获取详细错误信息,如内存不足或连接超时等。

Q2: 如何批量删除符合特定模式的键?
A: 可结合KEYSDEL命令实现,但KEYS命令会阻塞服务器,生产环境建议使用SCAN命令分批处理。

SCAN 0 MATCH user:* COUNT 100

该命令会返回游标、匹配的键列表,通过循环调用直到游标为0,最后将所有键传递给DEL命令批量删除。

分享:
扫描分享到社交APP
上一篇
下一篇