教程 redis tutorial

常用运维命令

在日常的 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 实例的高效运行。