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
安全最佳实践:
- 设置强密码
- 限制网络访问
- 重命名危险命令
- 启用保护模式
- 定期备份数据
- 监控异常访问