马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
虽然 Docker 拉一个 redis 镜像最省事,但有些环境(比如内网机器、要特定编译参数、要自己控制安装路径)还是得源码装。Redis 源码装起来很轻:下载、解压、make、改配置、起服务,五步能走完。本文按 CentOS 环境的实际操作记录,并把配置项里几个和安全强相关的点单独拎出来说。
一、获取源码
# redis-stable 是最新稳定版
wget https://download.redis.io/redis-stable.tar.gz
内网不通外网时,从有网的机器下好再拷过去,别去来历不明的第三方站点下二进制包——Redis 是常被植入挖矿程序的组件之一,源码包务必从官方站点获取。
二、解压并编译
# 指定解压到 /app 目录
tar -xzvf redis-stable.tar.gz -C /app
cd /app/redis-stable
make && make install
编译前确认 gcc 和 make 已装(yum -y install gcc make),否则 make 会中途报错。make install 默认把二进制装到 /usr/local/bin。
cd /app/redis-stable
cp redis.conf redis.conf.bak
vim redis.conf
要改的几项:
# 设置后台运行(前台改成 daemonize yes)
daemonize yes
# 绑定地址:生产建议保持默认 127.0.0.1,只让本机访问
bind 127.0.0.1
# 访问密码(必须设)
requirepass 你的强密码
# 日志 与持久化目录
logfile /var/log/redis/redis.log
dir /var/lib/redis
这里要特别说明一点:网上很多教程会教你把 bind 那一行注释掉,理由是「要支持远程访问」。注释掉绑定意味着 Redis 会监听所有网卡,配合弱密码就是典型的被入侵配置。正确做法是保持绑定回环,需要远程访问时通过防火墙精确放行来源 IP,或者加一层内网访问控制;如果确实必须监听公网,那就必须同时具备强密码、非默认端口、以及防火墙白名单三件事,缺一不可。
四、启动并测试
redis-server /app/redis-stable/redis.conf
用客户端验证:
redis-cli
auth 你的强密码
set test hello
get test
ping
能正确回显 value、ping 返回 PONG,说明服务和认证都正常。启用密码后,redis-cli ping 会先报 NOAUTH,这不是故障,是没认证。
五、生产环境必须补的几项
- 用 systemd 托管:写一个 redis.service,配 Restart=always 和开机自启,比手工 nohup 稳。
- 内存上限:redis.conf 里设 maxmemory 与 maxmemory-policy,否则内存一涨就被系统 OOM Killer 干掉。
- 持久化策略:按业务选 RDB 快照或 AOF,两者都开时注意 AOF 的重写触发条件。
- 慢日志
:slowlog-log-slower-than 打开,后面排性能问题有依据。
- 云服务器安全组:6379 绝对不要对公网全开放,这是最常见的被攻击入口。
- 监控
:至少监控 内存使用率、连接数、命中率三个指标。
六、启动失败的常见原因
- 报 Can't open the log file:logfile 所在目录不存在或 redis 运行用户没写权限。
- 报 Creating Server TCP listening socket *:6379: bind: Address already in use:端口被占,用 ss -lntp | grep 6379 找占用者。
- 编译阶段报 jemalloc 相关错误:装 gcc 与 make 后重新 make distclean 再编译。
- 启动后立刻退出:daemonize 仍为 no 而你是用后台方式拉起的,或者配置文件路径写错读到了默认配置。
整套流程下来,最需要记住的不是命令本身,而是「配置项里的 bind 和 requirepass 决定了这台 Redis 会不会被人在几小时内攻破」。
qidao123.com企服评测-应用市场 编辑提示
|