附录
本文档以表格为主,便于速查;默认语境为单机 Redis 与常见部署场景。
A. 常用命令速查表
A.1 通用命令(KEY 操作)
| 命令 | 语法 | 说明 |
|---|---|---|
| DEL | DEL key [key ...] | 删除一个或多个键;返回删除的键数量 |
| EXISTS | EXISTS key [key ...] | 判断键是否存在;多键时返回存在的个数 |
| EXPIRE | EXPIRE key seconds | 为键设置生存时间(秒) |
| TTL | TTL key | 查看剩余过期时间(秒);-1 永不过期,-2 不存在 |
| TYPE | TYPE key | 返回键的值类型(string / list / set / zset / hash 等) |
| RENAME | RENAME key newkey | 重命名键;newkey 已存在则覆盖 |
| KEYS | KEYS pattern | 按模式列出键(阻塞,生产慎用);如 KEYS user:* |
| SCAN | SCAN cursor [MATCH pattern] [COUNT hint] | 游标迭代键空间,非阻塞;适合大库遍历 |
A.2 String
| 命令 | 语法 | 说明 |
|---|---|---|
| SET | SET key value [EX seconds|PX ms] [NX|XX] | 设置字符串值;可带过期与 NX/XX 条件 |
| GET | GET key | 获取字符串值 |
| MSET | MSET key value [key value ...] | 批量设置多个键值(原子) |
| MGET | MGET key [key ...] | 批量获取多个键的值 |
| INCR | INCR key | 将整数值加 1;键不存在时从 0 开始 |
| DECR | DECR key | 将整数值减 1 |
| SETNX | SETNX key value | 仅当键不存在时设置(等价于 SET key value NX) |
| SETEX | SETEX key seconds value | 设置值并指定过期秒数 |
A.3 Hash
| 命令 | 语法 | 说明 |
|---|---|---|
| HSET | HSET key field value [field value ...] | 设置哈希字段;Redis 4.0+ 支持多字段 |
| HGET | HGET key field | 获取哈希中某字段的值 |
| HMSET | HMSET key field value [field value ...] | 批量设置字段(老写法;新环境多用 HSET 多字段) |
| HGETALL | HGETALL key | 返回哈希全部字段与值 |
| HDEL | HDEL key field [field ...] | 删除一个或多个字段 |
| HEXISTS | HEXISTS key field | 判断字段是否存在 |
| HKEYS | HKEYS key | 返回哈希中所有字段名 |
| HVALS | HVALS key | 返回哈希中所有值 |
A.4 List
| 命令 | 语法 | 说明 |
|---|---|---|
| LPUSH | LPUSH key element [element ...] | 从列表左侧压入元素 |
| RPUSH | RPUSH key element [element ...] | 从列表右侧压入元素 |
| LPOP | LPOP key [count] | 从左侧弹出元素 |
| RPOP | RPOP key [count] | 从右侧弹出元素 |
| LRANGE | LRANGE key start stop | 按索引范围取子列表(含两端;0 -1 表示全部) |
| LLEN | LLEN key | 列表长度 |
| LINDEX | LINDEX key index | 按索引取单个元素 |
| BRPOP | BRPOP key [key ...] timeout | 阻塞式右侧弹出;可作简单队列消费 |
A.5 Set
| 命令 | 语法 | 说明 |
|---|---|---|
| SADD | SADD key member [member ...] | 向集合添加成员 |
| SMEMBERS | SMEMBERS key | 返回集合全部成员 |
| SISMEMBER | SISMEMBER key member | 判断成员是否在集合中 |
| SCARD | SCARD key | 集合元素个数 |
| SINTER | SINTER key [key ...] | 多个集合的交集 |
| SUNION | SUNION key [key ...] | 多个集合的并集 |
| SDIFF | SDIFF key [key ...] | 第一个集合相对其余集合的差集 |
| SREM | SREM key member [member ...] | 从集合移除成员 |
A.6 Sorted Set(有序集合)
| 命令 | 语法 | 说明 |
|---|---|---|
| ZADD | ZADD key [NX|XX] [GT|LT] [CH] score member [score member ...] | 添加或更新成员及其分数 |
| ZRANGE | ZRANGE key start stop [BYSCORE|BYLEX] [REV] [LIMIT offset count] [WITHSCORES] | 按排名范围取成员(新版常用子选项较多) |
| ZREVRANGE | ZREVRANGE key start stop [WITHSCORES] | 按排名倒序取范围(老接口;新环境可用 ZRANGE … REV) |
| ZRANK | ZRANK key member | 成员按分数升序的排名(从 0 起) |
| ZSCORE | ZSCORE key member | 获取成员的分数 |
| ZCARD | ZCARD key | 有序集合成员数量 |
| ZRANGEBYSCORE | ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] | 按分数区间取成员 |
| ZREM | ZREM key member [member ...] | 移除一个或多个成员 |
A.7 服务器与管理
| 命令 | 语法 | 说明 |
|---|---|---|
| INFO | INFO [section] | 查看服务器信息与统计(如 memory、replication) |
| DBSIZE | DBSIZE | 当前库中的键数量 |
| FLUSHDB | FLUSHDB [ASYNC|SYNC] | 清空当前数据库(危险) |
| FLUSHALL | FLUSHALL [ASYNC|SYNC] | 清空所有数据库(危险) |
| CONFIG GET | CONFIG GET parameter | 读取运行配置(支持通配) |
| CONFIG SET | CONFIG SET parameter value | 运行时修改部分配置(重启可能丢失,视项而定) |
| SLOWLOG | SLOWLOG subcommand [argument] | 慢查询日志;如 SLOWLOG GET 10 |
B. redis.conf 关键配置项说明
下列「默认值」以官方发行版常见 redis.conf 为准;不同安装包或 Docker 镜像可能略有差异,以 CONFIG GET 或实际文件为准。
| 配置项 | 默认值(常见) | 说明 |
|---|---|---|
| bind | 127.0.0.1 -::1 | 监听的网卡地址;仅本机可连时较安全;对外服务需改为相应 IP 或 0.0.0.0(须配合防火墙与密码) |
| port | 6379 | TCP 监听端口 |
| requirepass | 空(无密码) | 客户端 AUTH 所需密码;生产强烈建议启用 |
| maxmemory | 0 | 最大可用内存;0 表示不限制(受系统内存约束) |
| maxmemory-policy | noeviction | 内存达上限时的策略:如 allkeys-lru、volatile-lru、allkeys-random、volatile-ttl、noeviction 等 |
| save | 多条 RDB 条件 | 如 save 900 1 表示 900 秒内至少 1 个键变化则快照;save "" 可关闭 RDB |
| appendonly | no | 是否开启 AOF 持久化 |
| appendfsync | everysec | AOF 刷盘策略:always(最安全最慢)、everysec(折中)、no(交操作系统) |
| aof-use-rdb-preamble | yes(新版常见) | AOF 重写时是否使用 RDB 作为前缀,加快恢复与压缩 |
| timeout | 0 | 客户端空闲多少秒关闭连接;0 表示不超时 |
| tcp-keepalive | 300(版本间可能不同) | TCP keepalive 间隔(秒),用于检测死连接 |
| databases | 16 | 逻辑库个数(SELECT 0~SELECT N-1) |
| replicaof | 无(主节点) | 从节点配置:replicaof <masterip> <masterport>;旧版为 slaveof |
| masterauth | 空 | 从节点连接主节点时的认证密码(主节点若设置了 requirepass) |
| protected-mode | yes | 保护模式:无密码且 bind 非本机时拒绝外部写等,降低误暴露风险 |
Sentinel 说明:sentinel monitor 等并非写在 redis.conf 中,而在 sentinel.conf(或启动参数)里配置,例如:sentinel monitor <master-name> <ip> <port> <quorum>,用于监控主节点、故障转移。主从复制本身用节点上的 replicaof / replica-read-only 等项。
C. 推荐学习资源
| 类型 | 名称 / 地址 | 说明 |
|---|---|---|
| 官方文档 | Redis 官方文档 | 命令参考、持久化、集群、模块等一手资料;英文为主,更新及时 |
| 官方交互教程 | Try Redis(try.redis.io) | 浏览器内练习基础命令,适合入门热身 |
| 书籍 | 《Redis 设计与实现》(黄健宏) | 偏内部实现:数据结构、持久化、复制等,适合想深入原理的读者 |
| 书籍 | 《Redis 实战》(Josiah L. Carlson) | 偏应用模式:缓存、任务队列、搜索等场景(中文版为译著) |
| 博客 / 教程 | 搜「Redis 官方文档」+ 具体主题(如 persistence、cluster) | 结合版本号阅读;避免只看过时 3.x 文章处理 7.x 行为 |
| 源码与发行说明 | Redis GitHub | 发行说明(Release notes)对行为变更有权威说明 |
文档版本说明:命令子选项随 Redis 主版本可能增减,请以当前实例 COMMAND DOCS <cmd> 或官方文档为准。