🔹 1. 基础操作
命令 | 示例 | 说明 |
---|---|---|
PING | PING → PONG | 检测服务是否在线 |
AUTH | AUTH mypass | 密码认证 |
INFO | INFO memory | 查看运行信息(可加子模块) |
KEYS | KEYS user:* | 模糊匹配键(⚠️ 线上慎用) |
DEL | DEL user:100 | 删除键 |
EXPIRE | EXPIRE session:1 3600 | 设置过期时间(秒) |
TTL | TTL user:100 | 查看剩余生存时间(秒) |
RENAME | RENAME old new | 重命名键 |
🔹 2. 字符串(String)
命令 | 示例 | 说明 |
---|---|---|
SET / GET | SET name "Alice" GET name | 设置/获取值 |
INCR / DECR | INCR counter | 自增/自减(整数) |
MSET / MGET | MSET a 1 b 2 | 批量操作 |
APPEND | APPEND log "new" | 字符串追加 |
STRLEN | STRLEN name | 获取字符串长度 |
🔹 3. 哈希(Hash)
命令 | 示例 | 说明 |
---|---|---|
HSET / HGET | HSET user:1 name "Alice" | 设置/获取字段 |
HGETALL | HGETALL user:1 | 获取所有字段 |
HDEL | HDEL user:1 name | 删除字段 |
HINCRBY | HINCRBY user:1 score 10 | 字段数值增减 |
HKEYS / HVALS | HKEYS user:1 | 获取所有键/值 |
🔹 4. 列表(List)
命令 | 示例 | 说明 |
---|---|---|
LPUSH / RPUSH | LPUSH queue job1 | 左/右插入 |
LPOP / RPOP | LPOP queue | 左/右弹出 |
LRANGE | LRANGE queue 0 -1 | 获取范围元素 |
LLEN | LLEN queue | 列表长度 |
BLPOP | BLPOP queue 0 | 阻塞式弹出(常用于队列) |
🔹 5. 集合(Set)
命令 | 示例 | 说明 |
---|---|---|
SADD / SREM | SADD tags redis | 添加/删除成员 |
SMEMBERS | SMEMBERS tags | 获取所有成员 |
SISMEMBER | SISMEMBER tags redis | 是否存在 |
SUNION / SINTER | SUNION set1 set2 | 并集 / 交集 |
🔹 6. 有序集合(Sorted Set, ZSet)
命令 | 示例 | 说明 |
---|---|---|
ZADD | ZADD rank 100 "Alice" | 添加带分值成员 |
ZRANGE | ZRANGE rank 0 -1 WITHSCORES | 正序获取 |
ZREVRANGE | ZREVRANGE rank 0 2 | 逆序取前 N |
ZSCORE | ZSCORE rank "Alice" | 获取分值 |
ZINCRBY | ZINCRBY rank 10 "Alice" | 分值增减 |
ZREM | ZREM rank "Bob" | 删除成员 |
🔹 7. 键空间管理
命令 | 示例 | 说明 |
---|---|---|
EXISTS | EXISTS key | 判断键是否存在 |
TYPE | TYPE key | 查看键类型 |
RENAME | RENAME old new | 重命名 |
FLUSHDB | FLUSHDB | 清空当前 DB |
FLUSHALL | FLUSHALL | 清空所有 DB(⚠️ 危险!) |
🔹 8. 事务与原子操作
命令 | 示例 | 说明 |
---|---|---|
MULTI | MULTI | 开启事务 |
EXEC | EXEC | 提交事务 |
DISCARD | DISCARD | 取消事务 |
WATCH | WATCH key | 监视键(乐观锁) |
🔹 9. 持久化
命令 | 示例 | 说明 |
---|---|---|
SAVE | SAVE | 同步 RDB 快照(阻塞) |
BGSAVE | BGSAVE | 异步 RDB 快照 |
LASTSAVE | LASTSAVE | 上次快照时间戳 |
BGREWRITEAOF | BGREWRITEAOF | 重写 AOF 文件 |
🔹 10. 主从复制与 Sentinel
命令 | 示例 | 说明 |
---|---|---|
REPLICAOF | REPLICAOF 127.0.0.1 6379 | 设置从节点 |
INFO replication | INFO replication | 查看复制状态 |
SENTINEL masters | — | 列出主节点(Sentinel 模式) |
SENTINEL failover | SENTINEL failover mymaster | 手动故障转移 |
🔹 11. Cluster 集群
命令 | 示例 | 说明 |
---|---|---|
CLUSTER INFO | CLUSTER INFO | 集群状态 |
CLUSTER NODES | CLUSTER NODES | 节点列表 |
CLUSTER KEYSLOT | CLUSTER KEYSLOT user:1 | 键所属槽位 |
CLUSTER ADDSLOTS | CLUSTER ADDSLOTS 0-5460 | 分配槽 |
CLUSTER MEET | CLUSTER MEET 192.168.1.10 6379 | 加入新节点 |
🔹 12. Pub/Sub 消息系统
命令 | 示例 | 说明 |
---|---|---|
PUBLISH | PUBLISH news "hello" | 发布消息 |
SUBSCRIBE | SUBSCRIBE news | 订阅频道 |
PSUBSCRIBE | PSUBSCRIBE news.* | 模糊订阅 |
UNSUBSCRIBE | — | 取消订阅 |
🔹 13. Stream(流队列)
命令 | 示例 | 说明 |
---|---|---|
XADD | XADD mystream * user Alice action login | 添加消息 |
XRANGE | XRANGE mystream - + | 获取消息范围 |
XREAD | XREAD STREAMS mystream 0 | 读取消息 |
XGROUP CREATE | XGROUP CREATE mystream g1 0 MKSTREAM | 创建消费组 |
XREADGROUP | XREADGROUP GROUP g1 c1 STREAMS mystream > | 消费消息 |
XACK | XACK mystream g1 1696600000-0 | 确认消费 |
XPENDING | XPENDING mystream g1 | 待确认消息 |
XTRIM | XTRIM mystream MAXLEN ~ 1000 | 修剪旧消息 |
🔹 14. Lua 脚本
命令 | 示例 | 说明 |
---|---|---|
EVAL | EVAL "return redis.call('set','foo','bar')" 0 | 执行脚本 |
SCRIPT LOAD | — | 预加载脚本(返回 SHA1) |
SCRIPT EXISTS | — | 检查脚本是否已加载 |
🔹 15. 安全与 ACL
命令 | 示例 | 说明 |
---|---|---|
AUTH | AUTH mypass | 登录认证 |
ACL LIST | ACL LIST | 查看用户列表 |
ACL SETUSER | ACL SETUSER readonly on >pass +@read -@write | 创建/修改用户权限 |
RENAME-COMMAND | RENAME-COMMAND FLUSHALL "" | 禁用危险命令 |
🔹 16–20. Redis 模块扩展
🔸 RedisJSON
JSON.SET user:1 $ '{"name":"Alice"}'
JSON.GET user:1 $.name
JSON.NUMINCRBY user:1 $.score 10
🔸 RedisBloom
BF.RESERVE filter1 0.01 100000
BF.ADD filter1 "user:alice"
BF.EXISTS filter1 "user:bob"
🔸 RedisGraph
GRAPH.QUERY social "CREATE (:User {name:'Alice'})"
GRAPH.QUERY social "MATCH (a:User) RETURN a"
🔸 RedisTimeSeries
TS.CREATE temp:1 RETENTION 60000
TS.ADD temp:1 * 26.5
TS.MRANGE - + FILTER sensor=office
🔸 向量检索(RedisVL / RediSearch)
FT.CREATE idx ON HASH SCHEMA vec VECTOR HNSW 6 TYPE FLOAT32 DIM 768 DISTANCE_METRIC COSINE
FT.SEARCH idx "*=>[KNN 5 @vec $VEC]" PARAMS 2 VEC $EMBED
🔹 21. 运维与性能
命令 | 示例 | 说明 |
---|---|---|
SLOWLOG GET 10 | 查看慢查询 | |
CLIENT LIST | 查看客户端连接 | |
CONFIG GET maxmemory | 获取配置 | |
CONFIG SET maxmemory 4gb | 动态修改 | |
MONITOR | 实时命令监控(⚠️ 高开销) |
🔹 22. 备份与迁移
命令 | 示例 | 说明 |
---|---|---|
DUMP / RESTORE | DUMP key → RESTORE key ttl value | 序列化/反序列化 |
MIGRATE | MIGRATE host port key 0 5000 | 跨实例迁移 |
🔹 23. Cluster CLI 工具
命令 | 说明 |
---|---|
redis-cli --cluster create | 初始化集群 |
--cluster check | 健康检查 |
--cluster reshard | 重新分片 |
--cluster add-node / del-node | 节点扩缩容 |
🔹 24. AI 实战组合
场景 | 命令组合 |
---|---|
Prompt 缓存 | HSET cache:prompt text "..." EX 3600 |
RAG 向量检索 | FT.SEARCH idx "*=>[KNN 5 @vec $VEC]" |
异步推理队列 | XADD ai:task * prompt "..." |
消费推理结果 | XREADGROUP GROUP g1 worker1 STREAMS ai:task > |
⚙️ 附:生产环境调优建议
类别 | 推荐配置 | 说明 |
---|---|---|
内存策略 | maxmemory-policy allkeys-lru | 缓存场景最佳 |
持久化 | appendfsync everysec | 性能与安全平衡 |
安全 | requirepass + rename-command | 禁用 FLUSHALL 等 |
网络 | tcp-keepalive 60 | 防止连接僵死 |
多线程 | io-threads-do-reads yes | Redis 6+ 提升吞吐 |
集群超时 | cluster-node-timeout 10000 | 避免误判节点宕机 |
日志级别 | loglevel notice | 生产环境推荐 |
💡 结语:Redis 不仅是缓存,更是现代数据基础设施的核心引擎——从SET
到FT.SEARCH
,从队列到向量检索,它正驱动着 AI 时代的实时数据处理。