菜鸟科技网

Redis 所有命令有哪些?

Redis(Remote Dictionary Server)是一个开源的、基于内存的高性能键值数据库,常用于缓存、消息队列、实时统计等场景,它支持多种数据结构,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)等,每种数据结构都有对应的命令集,以下是Redis常用命令的详细介绍,涵盖数据操作、服务器管理、持久化、事务等功能,并辅以表格形式归纳核心命令,最后附相关FAQs解答。

Redis 所有命令有哪些?-图1
(图片来源网络,侵删)

字符串(String)操作命令

字符串是Redis最基本的数据结构,可以存储文本、JSON、序列化对象等,常用命令包括:

  • SET key value [EX seconds] [PX milliseconds]:设置键值对,可指定过期时间(EX秒或PX毫秒)。
  • GET key:获取键对应的值。
  • DEL key [key ...]:删除一个或多个键。
  • INCR key:将键的值加1(值必须为整数)。
  • DECR key:将键的值减1。
  • EXPIRE key seconds:设置键的过期时间(秒)。
  • TTL key:查看键的剩余过期时间(秒),-1表示永不过期,-2表示键不存在。

示例
SET user:1:name "Alice" EX 3600(设置键并1小时后过期)
GET user:1:name(返回"Alice")

哈希(Hash)操作命令

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

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

示例
HSET user:1 age 25 city "Beijing"
HGETALL user:1(返回age:25, city:"Beijing")

Redis 所有命令有哪些?-图2
(图片来源网络,侵删)

列表(List)操作命令

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

  • LPUSH key value [value ...]:将值插入列表头部。
  • RPUSH key value [value ...]:将值插入列表尾部。
  • LPOP key:移除并返回列表头部元素。
  • RPOP key:移除并返回列表尾部元素。
  • LRANGE key start stop:获取列表指定范围内的元素(0表示第一个,-1表示最后一个)。

示例
LPUSH queue "task1"(列表头部添加"task1")
LRANGE queue 0 -1(返回所有元素)

集合(Set)操作命令

集合是无序且唯一的字符串元素集合,支持交集、并集等操作,命令:

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

示例
SADD tags "redis" "database"
SMEMBERS tags(返回"redis", "database")

Redis 所有命令有哪些?-图3
(图片来源网络,侵删)

有序集合(Sorted Set)操作命令

有序集合是带分数(score)的成员集合,成员按分数排序,命令:

  • ZADD key score member [score member ...]:添加成员并指定分数。
  • ZRANGE key start stop [WITHSCORES]:返回指定排名范围内的成员(按分数升序)。
  • ZREVRANGE key start stop [WITHSCORES]:按分数降序返回成员。
  • ZSCORE key member:获取成员的分数。
  • ZINCRBY key increment member:增加成员的分数。

示例
ZADD leaderboard 100 "Alice" 200 "Bob"
ZRANGE leaderboard 0 -1 WITHSCORES(返回Alice:100, Bob:200)

键管理命令

  • KEYS pattern:匹配符合模式的键(生产环境慎用,性能开销大)。
  • EXISTS key [key ...]:检查键是否存在。
  • TYPE key:返回键的数据类型。
  • RENAME key newkey:重命名键。
  • RANDOMKEY:随机返回一个键。

服务器与持久化命令

  • INFO [section]:返回服务器信息(如内存、客户端连接)。
  • SAVE:同步保存数据到磁盘(阻塞操作)。
  • BGSAVE:异步保存数据到磁盘。
  • FLUSHDB:清空当前数据库。
  • FLUSHALL:清空所有数据库。

事务与脚本命令

  • MULTI:开启事务。
  • EXEC:执行事务中的命令。
  • DISCARD:取消事务。
  • EVAL script numkeys key [key ...] arg [arg ...]:执行Lua脚本。

示例
MULTI
SET temp 100
INCR temp
EXEC(原子性执行)

核心命令速查表

数据结构 常用命令 功能描述
String SET, GET, INCR, EXPIRE 设置、获取、递增、设置过期时间
Hash HSET, HGET, HGETALL 设置字段、获取字段值、获取所有字段
List LPUSH, RPUSH, LPOP 头部/尾部插入、头部弹出
Set SADD, SMEMBERS, SINTER 添加成员、获取所有成员、交集运算
Sorted Set ZADD, ZRANGE, ZSCORE 添加成员并设分数、按范围获取成员、获取分数

相关问答FAQs

Q1: Redis如何避免KEYS命令导致的性能问题?
A: KEYS pattern会阻塞服务器,生产环境建议使用SCAN cursor [MATCH pattern] [COUNT count]命令。SCAN是游标式遍历,非阻塞且可分批返回结果,例如SCAN 0 MATCH user:* COUNT 100

Q2: Redis持久化机制RDB和AOF如何选择?
A: RDB(Redis Database)通过快照定期保存数据,恢复速度快但可能丢失最后一次快照后的数据;AOF(Append Only File)记录所有写命令,数据安全性高但文件较大且恢复慢,建议:

  • 对数据安全性要求高:开启AOF(可配置appendfsync everysec)。
  • 对性能要求高:使用RDB,或两者结合(同时开启RDB和AOF,AOF优先级更高)。
分享:
扫描分享到社交APP
上一篇
下一篇