在Debian系统上配置Redis需注意以下安全与性能要点:
-
访问控制
- 绑定IP:修改
/etc/redis/redis.conf中bind参数,仅允许内网IP或特定IP访问(如bind 127.0.0.1或内网地址),避免暴露到公网。 - 设置密码:取消
requirepass注释并配置强密码(如包含大小写字母、数字、特殊符号),启用认证。 - 禁用高危命令:通过
rename-command禁用FLUSHDB、FLUSHALL、CONFIG等危险命令,防止误操作或恶意破坏。
- 绑定IP:修改
-
持久化与数据安全
- 启用AOF持久化:设置
appendonly yes,并选择appendfsync everysec平衡性能与数据安全,避免数据丢失。 - 定期备份RDB文件:若使用RDB快照,需将
/var/lib/redis/dump.rdb定期备份到安全位置。
- 启用AOF持久化:设置
-
性能优化
- 内存管理:设置
maxmemory为物理内存的60%-70%,并选择合适的淘汰策略(如volatile-lru)。 - 禁用透明大页:执行
echo never > /sys/kernel/mm/transparent_hugepage/enabled,避免影响Redis性能。
- 内存管理:设置
-
网络与防火墙
- 限制端口访问:通过防火墙(如
ufw)仅允许信任IP访问Redis端口(默认6379),关闭非必要端口的访问权限。 - 启用SSL/TLS加密(Redis 6.0+):配置证书路径,强制客户端使用加密连接,保护数据传输安全。
- 限制端口访问:通过防火墙(如
-
服务配置
- 以非root用户运行:创建专用
redis用户,修改数据目录和配置文件权限,避免使用root权限运行服务。 - 日志管理:配置
logfile参数指定日志文件路径,定期清理日志避免占用磁盘空间。
- 以非root用户运行:创建专用
-
高可用与监控
- 生产环境建议部署Redis Sentinel或Cluster,实现故障自动转移和数据分片。
- 定期监控内存使用率、连接数、命中率等指标,通过
redis-cli info或第三方工具(如Prometheus)及时发现异常。
参考来源: