主题
常用运维命令
在日常的 Redis 运维中,管理员常常需要执行一些基本的管理、监控、故障排查和优化操作。以下是一些常用的 Redis 运维命令,这些命令可以帮助您更好地管理 Redis 实例。
1. Redis 状态查看命令
1.1 INFO
INFO 命令用于获取 Redis 实例的详细统计信息,包括内存使用、客户端连接、持久化状态等。是运维过程中非常重要的监控工具。
bash
INFO常见的 INFO 子命令包括:
- INFO memory:查看内存使用情况。
- INFO stats:查看 Redis 的统计信息。
- INFO persistence:查看持久化状态。
- INFO replication:查看主从复制状态。
- INFO clients:查看客户端连接状态。
bash
INFO memory1.2 MONITOR
MONITOR 命令可以实时查看 Redis 执行的所有命令,适用于调试和查看命令执行过程。
bash
MONITOR注意:MONITOR 命令会返回大量信息,通常只在调试时使用,且对性能有一定影响。
1.3 CLIENT LIST
CLIENT LIST 命令可以查看当前与 Redis 实例连接的所有客户端信息,包括客户端的 IP 地址、连接状态、订阅的频道等。
bash
CLIENT LIST输出示例:
text
id=7 addr=127.0.0.1:6379 fd=7 name= age=11 idle=11 flags=N db=0 sub=0 psub=0 multi=0 qbuf=35 qbuf-free=32705 obl=0 oll=0 omem=0 events=0 cmd=client1.4 CONFIG GET 和 CONFIG SET
CONFIG GET 用于查看 Redis 配置参数,而 CONFIG SET 用于动态修改 Redis 配置(不需要重启)。
bash
CONFIG GET maxmemorybash
CONFIG SET maxmemory 2gb1.5 PING
PING 命令用于测试与 Redis 服务器的连接是否正常。Redis 会返回 PONG 表示连接正常。
bash
PING返回:
text
PONG2. 数据管理命令
2.1 KEYS
KEYS 命令用于查找 Redis 中符合某个模式的键。注意,KEYS 命令在大规模数据中执行会对性能产生影响,避免在生产环境频繁使用。
bash
KEYS *2.2 DEL
DEL 命令用于删除指定的一个或多个键。
bash
DEL key1 key2 key32.3 EXPIRE 和 TTL
EXPIRE 命令用于为指定键设置过期时间,而 TTL 命令则用于查看键的剩余生存时间。
bash
EXPIRE key 60 # 设置键 key 的过期时间为 60 秒bash
TTL key # 查询键 key 剩余的过期时间2.4 FLUSHDB 和 FLUSHALL
FLUSHDB:删除当前数据库中的所有键。FLUSHALL:删除所有数据库中的所有键。
bash
FLUSHDBbash
FLUSHALL2.5 SAVE 和 BGSAVE
SAVE 命令会同步保存 Redis 数据到磁盘,会阻塞当前线程;而 BGSAVE 会在后台异步执行保存操作,不会阻塞客户端请求。
bash
SAVEbash
BGSAVE2.6 DUMP 和 RESTORE
DUMP:序列化键值对的值,返回一个可存储在磁盘上的二进制序列。RESTORE:将DUMP命令返回的二进制数据恢复为一个键。
bash
DUMP keybash
RESTORE key 0 value # 0 表示过期时间为 0,value 是通过 DUMP 返回的二进制数据3. 主从复制与高可用命令
3.1 SLAVEOF
SLAVEOF 命令用于将一个 Redis 实例设置为另一个 Redis 实例的从节点。
bash
SLAVEOF 127.0.0.1 6379使用 SLAVEOF NO ONE 来取消主从复制关系。
bash
SLAVEOF NO ONE3.2 REPLICAOF
REPLICAOF 是 SLAVEOF 的替代命令,功能相同,用于设置从节点。
bash
REPLICAOF 127.0.0.1 63793.3 SYNC 和 PSYNC
SYNC 命令会在主从复制时同步数据,PSYNC 是 SYNC 的更高效版本,用于增量同步数据。
bash
SYNC4. 故障排查命令
4.1 SLOWLOG
SLOWLOG 命令用于查看 Redis 的慢查询日志,可以帮助你识别执行时间较长的命令,进行性能优化。
bash
SLOWLOG GET 10 # 查看最近的 10 个慢查询日志4.2 LATENCY
LATENCY 命令用于查看 Redis 的延迟问题,帮助排查性能瓶颈。
bash
LATENCY DOCTOR # 查看 Redis 的延迟情况并给出诊断建议4.3 MONITOR
MONITOR 命令可以实时查看 Redis 的所有命令执行情况,适用于调试和监控。
bash
MONITOR4.4 DEBUG OBJECT
DEBUG OBJECT 用于查看 Redis 内部对象的详细信息,帮助排查内存问题。
bash
DEBUG OBJECT key5. 备份与恢复命令
5.1 SAVE 和 BGSAVE
如前所述,SAVE 会同步保存数据,BGSAVE 则是异步保存。
5.2 RESTORE
RESTORE 命令用于将备份的数据恢复到 Redis 中。
bash
RESTORE key 0 value5.3 BGREWRITEAOF
BGREWRITEAOF 命令用于重写 AOF 文件,优化 AOF 文件的大小。这个操作是异步的,不会阻塞客户端。
bash
BGREWRITEAOF6. 性能优化命令
6.1 CONFIG SET
CONFIG SET 命令用于修改 Redis 配置参数。它可以在不重启 Redis 的情况下调整一些重要参数。
bash
CONFIG SET maxmemory 2gb # 设置最大内存为 2GB6.2 BGSAVE
BGSAVE 是一个异步操作,用于将数据集持久化到磁盘。在高并发场景下,BGSAVE 可以避免阻塞 Redis 服务。
bash
BGSAVE6.3 PERSIST
PERSIST 命令用于移除键的过期时间,使键永不过期。对于需要长期存储的键,可以使用该命令。
bash
PERSIST key总结
这些常用的 Redis 运维命令是日常管理、监控、优化 Redis 实例的基础。通过掌握这些命令,您可以更加高效地管理 Redis,提高系统的稳定性和性能。在实际应用中,根据业务需求灵活调整 Redis 配置,及时排查和解决性能瓶颈,确保 Redis 实例的高效运行。