
1. Redis基础命令概述Redis作为当前最流行的内存数据库之一其命令行接口是与服务交互的主要方式。掌握基础命令不仅能提高日常开发效率更是深入理解Redis特性的必经之路。我整理了一份经过实战验证的命令手册涵盖数据操作、配置管理和性能监控三大类高频使用场景。2. 核心数据结构操作命令2.1 字符串(String)操作# 设置键值(带过期时间) SETEX user:1001 3600 John Doe # 批量操作 MSET config:max_conn 500 config:timeout 30 # 原子递增 INCR page:views # 位图操作 SETBIT user:1001:login 5 1注意SETNX常用于分布式锁实现但Redis 2.6.12后更推荐使用SET带NX参数的方式2.2 哈希(Hash)操作# 用户信息存储示例 HSET user:1001 name Alice age 28 email aliceexample.com # 批量获取字段 HMGET user:1001 name age # 字段递增 HINCRBY user:1001 age 1哈希结构特别适合存储对象相比字符串的JSON存储方案可以单独修改字段且内存占用更低。2.3 列表(List)操作# 消息队列实现 LPUSH notifications system update RPOP notifications # 范围查询 LRANGE news 0 9列表的阻塞版本命令(BRPOP/BLPOP)常用于实现简单的消息队列系统。2.4 集合(Set)操作# 标签系统示例 SADD article:1234:tags tech redis database # 共同关注计算 SINTER user:1001:follows user:1002:follows集合运算(SINTER/SUNION/SDIFF)在社交关系分析中非常实用。2.5 有序集合(Sorted Set)操作# 排行榜实现 ZADD leaderboard 100 player1 85 player2 # 范围查询 ZREVRANGE leaderboard 0 9 WITHSCORES有序集合的ZRANGEBYSCORE命令支持分页查询是排行榜系统的核心实现方式。3. 系统管理命令3.1 键空间操作# 模式匹配删除 redis-cli --scan --pattern session:* | xargs redis-cli DEL # 键过期设置 EXPIAT user:1001 3600 # 持久化控制 BGSAVE危险警告生产环境慎用KEYS命令推荐使用SCAN替代3.2 配置管理# 运行时配置修改 CONFIG SET maxmemory 2gb # 配置持久化 CONFIG REWRITE动态配置修改不会持久化到配置文件需要显式执行CONFIG REWRITE。3.3 连接管理# 客户端列表查询 CLIENT LIST # 连接终止 CLIENT KILL addr 127.0.0.1:34567CLIENT PAUSE命令可用于实现安全的主从切换。4. 事务与Lua脚本4.1 事务操作MULTI INCR counter EXPIRE counter 300 EXECRedis事务不支持回滚命令错误会继续执行后续命令。4.2 Lua脚本示例-- 限流脚本 local key KEYS[1] local limit tonumber(ARGV[1]) local current tonumber(redis.call(GET, key) or 0) if current 1 limit then return 0 else redis.call(INCR, key) redis.call(EXPIRE, key, ARGV[2]) return 1 endLua脚本通过EVAL命令执行具有原子性优势但要注意脚本复杂度。5. 性能监控命令5.1 实时监控# 内存分析 MEMORY STATS # 慢查询日志 SLOWLOG GET 105.2 基准测试redis-benchmark -t set,get -n 100000 -q基准测试应模拟真实业务场景的数据大小和访问模式。6. 集群管理命令6.1 节点管理# 集群节点查看 CLUSTER NODES # 槽位分配 CLUSTER ADDSLOTS {0..5460}6.2 故障转移# 手动故障转移 CLUSTER FAILOVER7. 安全最佳实践7.1 访问控制# 密码配置 CONFIG SET requirepass complexpassword # 命令重命名 RENAME-COMMAND FLUSHDB internal-flushdb7.2 审计日志# 启用审计 CONFIG SET audit-log-enabled yes8. 实用技巧与陷阱规避管道(Pipeline)优化批量命令可提升10-100倍吞吐量(echo -en PING\r\nPING\r\nPING\r\n; sleep 1) | nc localhost 6379大Key扫描定期检查大Key避免性能问题redis-cli --bigkeys热点Key识别通过监控发现访问热点redis-cli --hotkeys内存优化使用适当数据结构可节省50%以上内存小哈希使用ziplist编码短字符串使用embstr编码连接池配置合理设置最大连接数避免资源耗尽9. 命令速查表类别关键命令典型应用场景字符串SET/GET/INCR/DECR计数器、缓存哈希HSET/HGET/HINCRBY对象存储列表LPUSH/RPOP/BLPOP消息队列集合SADD/SINTER/SUNION标签系统、社交关系有序集合ZADD/ZRANGE/ZREVRANK排行榜、优先级队列事务MULTI/EXEC/WATCH原子操作发布订阅PUBLISH/SUBSCRIBE实时通知地理空间GEOADD/GEORADIUS位置服务超时控制EXPIRE/TTL/PEXPIRE会话管理持久化SAVE/BGSAVE/AOF数据备份掌握这些基础命令后可以应对90%的日常Redis使用场景。建议在测试环境多练习组合使用这些命令理解不同数据结构的特点和适用场景。