Redis 作为一款高性能的内存数据库,其命令丰富且功能强大,涵盖了数据操作、管理、配置等多个方面,以下是 Redis 常用命令的详细分类与说明,帮助用户快速掌握核心功能。

键(Key)相关命令
键是 Redis 中最基本的数据单元,常用命令包括:
SET key value:设置键值对,若键已存在则覆盖。GET key:获取键对应的值,若键不存在则返回 nil。DEL key [key ...]:删除一个或多个键,返回删除的键数量。EXISTS key:检查键是否存在,存在返回 1,否则返回 0。EXPIRE key seconds:设置键的过期时间(秒),到期后键自动删除。TTL key:返回键的剩余过期时间(秒),-1 表示永不过期,-2 表示键不存在。KEYS pattern:匹配符合模式的键(如KEYS *匹配所有键),生产环境慎用(阻塞服务器)。SCAN cursor [MATCH pattern] [COUNT count]:增量式遍历键,避免阻塞。
字符串(String)命令
字符串是 Redis 最基础的数据结构,命令包括:
INCR key:键值递增 1,若键不存在则初始化为 1。DECR key:键值递减 1,若键不存在则初始化为 -1。INCRBY key increment:按指定值递增。APPEND key value:在字符串末尾追加值,返回新字符串长度。STRLEN key:返回字符串长度。
哈希(Hash)命令
哈希是键值对集合,适合存储对象:
HSET key field value:设置哈希表字段值。HGET key field:获取字段值。HGETALL key:获取哈希表所有字段和值。HDEL key field [field ...]:删除一个或多个字段。HINCRBY key field increment:字段值按指定值递增。HEXISTS key field:检查字段是否存在。
列表(List)命令
列表是字符串集合,按插入顺序排序:

LPUSH key value [value ...]:在左侧插入一个或多个值,返回列表长度。RPUSH key value [value ...]:在右侧插入值。LPOP key:移除并返回左侧第一个元素。RPOP key:移除并返回右侧第一个元素。LRANGE key start stop:获取列表指定范围元素(0 表示第一个,-1 表示最后一个)。LLEN key:返回列表长度。
集合(Set)命令
集合是无序且不重复的字符串集合:
SADD key member [member ...]:添加一个或多个成员,返回新增成员数。SMEMBERS key:返回所有成员。SREM key member [member ...]:删除一个或多个成员,返回删除成功数。SCARD key:返回集合元素个数。SISMEMBER key member:检查成员是否存在,存在返回 1,否则 0。SDIFF key [key ...]:返回多个集合的差集。SUNION key [key ...]:返回多个集合的并集。
有序集合(Sorted Set)命令
有序集合是带分数的成员集合,按分数排序:
ZADD key score member [score member ...]:添加成员及分数,返回新增成员数。ZRANGE key start stop [WITHSCORES]:返回指定范围成员(按分数升序),WITHSCORES可显示分数。ZREVRANGE key start stop [WITHSCORES]:按分数降序排列。ZSCORE key member:返回成员分数。ZINCRBY key increment member:成员分数按指定值递增。ZCARD key:返回成员数量。
其他常用命令
FLUSHDB:清空当前数据库。FLUSHALL:清空所有数据库。SAVE:同步保存数据到磁盘(阻塞)。BGSAVE:异步保存数据到磁盘。INFO [section]:返回服务器信息(如内存、客户端等)。
以下是部分命令的快速参考表格:
| 命令分类 | 命令示例 | 功能说明 |
|---|---|---|
| 键操作 | SET key value |
设置键值对 |
| 字符串 | INCR key |
键值递增 1 |
| 哈希 | HGETALL key |
获取哈希表所有字段和值 |
| 列表 | LRANGE key 0 -1 |
获取列表所有元素 |
| 集合 | SADD key member |
添加成员到集合 |
| 有序集合 | ZRANGE key 0 10 |
获取分数最低的前 11 个成员 |
相关问答 FAQs
Q1:Redis 如何批量删除符合某个模式的键?
A1:可以使用 KEYS 命令匹配键,再结合 DEL 批量删除,DEL $(KEYS pattern),但 KEYS 会阻塞服务器,生产环境推荐使用 SCAN 命令增量遍历,例如通过脚本循环调用 SCAN 并删除匹配键。

Q2:Redis 的过期键是如何被清理的?
A2:Redis 通过两种方式清理过期键:1)惰性删除:当访问键时检查是否过期,若过期则删除;2)定期删除:后台线程定期随机抽样部分键,删除其中过期的键,这两种方式结合,既避免了内存浪费,又减少了阻塞。
