🖥️ Redis 服务器

深入了解 Redis 服务器管理与优化

Redis 服务器概述

Redis 服务器是整个 Redis 系统的核心,负责处理客户端请求、管理数据存储、执行命令等。了解服务器的配置和管理对于构建高性能的 Redis 应用至关重要。

📊 服务器信息查看

使用 INFO 命令查看服务器详细信息:

# 查看所有服务器信息 INFO # 查看特定部分信息 INFO server INFO memory INFO stats INFO replication INFO cpu INFO keyspace

⚙️ 服务器配置

Redis 服务器配置可以通过配置文件或运行时命令进行设置:

# 查看配置项 CONFIG GET * CONFIG GET maxmemory # 设置配置项 CONFIG SET maxmemory 2gb CONFIG SET timeout 300 # 保存配置到文件 CONFIG REWRITE
配置项 说明 示例值
maxmemory 最大内存限制 2gb
timeout 客户端空闲超时 300
tcp-keepalive TCP keepalive 60
maxclients 最大客户端连接数 10000
databases 数据库数量 16

💾 内存管理

Redis 内存管理是服务器性能的关键因素:

# 查看内存使用情况 INFO memory # 查看内存统计 MEMORY STATS # 查看特定键的内存使用 MEMORY USAGE mykey # 手动触发垃圾回收 MEMORY PURGE

内存优化策略:

  • 设置合适的 maxmemory 限制
  • 配置内存淘汰策略
  • 使用合适的数据结构
  • 定期清理过期键
  • 监控内存碎片率

📈 性能监控

监控 Redis 服务器性能的重要指标:

# 实时监控命令执行 MONITOR # 查看慢查询日志 SLOWLOG GET 10 SLOWLOG LEN SLOWLOG RESET # 查看延迟统计 LATENCY LATEST LATENCY HISTORY command
监控指标 命令 说明
QPS INFO stats 每秒查询数
内存使用 INFO memory 内存占用情况
连接数 INFO clients 客户端连接数
慢查询 SLOWLOG GET 执行缓慢的命令
键空间 INFO keyspace 数据库键统计

🔄 服务器管理命令

常用的服务器管理命令:

# 保存数据到磁盘 SAVE BGSAVE # 重写 AOF 文件 BGREWRITEAOF # 刷新数据库 FLUSHDB FLUSHALL # 关闭服务器 SHUTDOWN SHUTDOWN SAVE SHUTDOWN NOSAVE # 调试命令 DEBUG OBJECT mykey DEBUG SEGFAULT
警告: FLUSHALL 和 SHUTDOWN 命令会影响整个服务器,请谨慎使用。

📝 日志管理

Redis 日志系统帮助监控和调试:

日志级别:

  • debug:详细调试信息
  • verbose:详细信息
  • notice:一般信息(默认)
  • warning:警告信息
# 设置日志级别 CONFIG SET loglevel notice # 设置日志文件 CONFIG SET logfile /var/log/redis.log # 设置系统日志 CONFIG SET syslog-enabled yes CONFIG SET syslog-ident redis

🛡️ 安全配置

保护 Redis 服务器的安全措施:

# 设置密码 CONFIG SET requirepass your_password # 重命名危险命令 rename-command FLUSHDB "" rename-command FLUSHALL "" rename-command CONFIG "CONFIG_abc123" # 绑定特定IP bind 127.0.0.1 192.168.1.100 # 保护模式 protected-mode yes

安全最佳实践:

  • 设置强密码
  • 限制网络访问
  • 重命名危险命令
  • 启用保护模式
  • 定期备份数据
  • 监控异常访问