主题
常用运维命令
在日常的 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 memory
1.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=client
1.4 CONFIG GET
和 CONFIG SET
CONFIG GET
用于查看 Redis 配置参数,而 CONFIG SET
用于动态修改 Redis 配置(不需要重启)。
bash
CONFIG GET maxmemory
bash
CONFIG SET maxmemory 2gb
1.5 PING
PING
命令用于测试与 Redis 服务器的连接是否正常。Redis 会返回 PONG
表示连接正常。
bash
PING
返回:
text
PONG
2. 数据管理命令
2.1 KEYS
KEYS
命令用于查找 Redis 中符合某个模式的键。注意,KEYS
命令在大规模数据中执行会对性能产生影响,避免在生产环境频繁使用。
bash
KEYS *
2.2 DEL
DEL
命令用于删除指定的一个或多个键。
bash
DEL key1 key2 key3
2.3 EXPIRE
和 TTL
EXPIRE
命令用于为指定键设置过期时间,而 TTL
命令则用于查看键的剩余生存时间。
bash
EXPIRE key 60 # 设置键 key 的过期时间为 60 秒
bash
TTL key # 查询键 key 剩余的过期时间
2.4 FLUSHDB
和 FLUSHALL
FLUSHDB
:删除当前数据库中的所有键。FLUSHALL
:删除所有数据库中的所有键。
bash
FLUSHDB
bash
FLUSHALL
2.5 SAVE
和 BGSAVE
SAVE
命令会同步保存 Redis 数据到磁盘,会阻塞当前线程;而 BGSAVE
会在后台异步执行保存操作,不会阻塞客户端请求。
bash
SAVE
bash
BGSAVE
2.6 DUMP
和 RESTORE
DUMP
:序列化键值对的值,返回一个可存储在磁盘上的二进制序列。RESTORE
:将DUMP
命令返回的二进制数据恢复为一个键。
bash
DUMP key
bash
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 ONE
3.2 REPLICAOF
REPLICAOF
是 SLAVEOF
的替代命令,功能相同,用于设置从节点。
bash
REPLICAOF 127.0.0.1 6379
3.3 SYNC
和 PSYNC
SYNC
命令会在主从复制时同步数据,PSYNC
是 SYNC
的更高效版本,用于增量同步数据。
bash
SYNC
4. 故障排查命令
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
MONITOR
4.4 DEBUG OBJECT
DEBUG OBJECT
用于查看 Redis 内部对象的详细信息,帮助排查内存问题。
bash
DEBUG OBJECT key
5. 备份与恢复命令
5.1 SAVE
和 BGSAVE
如前所述,SAVE
会同步保存数据,BGSAVE
则是异步保存。
5.2 RESTORE
RESTORE
命令用于将备份的数据恢复到 Redis 中。
bash
RESTORE key 0 value
5.3 BGREWRITEAOF
BGREWRITEAOF
命令用于重写 AOF 文件,优化 AOF 文件的大小。这个操作是异步的,不会阻塞客户端。
bash
BGREWRITEAOF
6. 性能优化命令
6.1 CONFIG SET
CONFIG SET
命令用于修改 Redis 配置参数。它可以在不重启 Redis 的情况下调整一些重要参数。
bash
CONFIG SET maxmemory 2gb # 设置最大内存为 2GB
6.2 BGSAVE
BGSAVE
是一个异步操作,用于将数据集持久化到磁盘。在高并发场景下,BGSAVE
可以避免阻塞 Redis 服务。
bash
BGSAVE
6.3 PERSIST
PERSIST
命令用于移除键的过期时间,使键永不过期。对于需要长期存储的键,可以使用该命令。
bash
PERSIST key
总结
这些常用的 Redis 运维命令是日常管理、监控、优化 Redis 实例的基础。通过掌握这些命令,您可以更加高效地管理 Redis,提高系统的稳定性和性能。在实际应用中,根据业务需求灵活调整 Redis 配置,及时排查和解决性能瓶颈,确保 Redis 实例的高效运行。