Redis 缓存配置教程:Linux 安装 Redis、密码设置与网站缓存接入步骤及常见问题

适用场景

网站访问变慢、数据库压力增大,是很多站长在中后期都会遇到的问题。当一个 WordPress 或其他动态网站的访问量上来之后,每一次页面请求都要查询 MySQL 数据库,数据库很容易成为整个系统的瓶颈。Redis 是一款基于内存的高性能键值存储,常被用作数据库前的缓存层,可以把频繁读取的数据放在内存里,大幅降低数据库压力,把页面响应时间从几百毫秒缩短到几十毫秒以内。

本教程适用于以下场景:网站访问量大导致数据库 CPU 或连接数偏高;希望为 WordPress 接入对象缓存提升后台和前台速度;需要在 Linux 服务器上从零安装并配置一个安全可用的 Redis 服务。文章以常见的 CentOS/Ubuntu 系统为例,步骤同样适用于大多数 Linux 发行版,具体包名以你的系统和官方文档为准。

需要提醒的是,Redis 默认配置并不安全,直接暴露在公网上曾导致大量服务器被入侵。所以本文在安装之外,会重点讲解密码设置、绑定地址等安全配置,请务必按步骤操作,不要跳过安全部分。

第一步:安装 Redis

在 CentOS 系统上,可以先启用 EPEL 源再安装 Redis,执行以下命令:

sudo yum install epel-release -y
sudo yum install redis -y

在 Ubuntu/Debian 系统上,直接使用 apt 安装即可:

sudo apt update
sudo apt install redis-server -y

安装完成后,用 redis-server --version 确认版本号,建议使用较新的稳定版本。如果系统源的版本过旧,可以考虑通过官方源或源码编译安装,但对手头只有一台普通业务服务器的站长来说,发行版自带的稳定版已经足够日常缓存使用。

第二步:启动服务并设置开机自启

安装完成后,启动 Redis 并设置开机自动启动:

sudo systemctl start redis
sudo systemctl enable redis
sudo systemctl status redis

看到 active (running) 字样说明服务已经正常运行。部分系统上服务名可能是 redis-server,可以用 systemctl list-units | grep redis 确认实际的服务名。

接着用本地命令行验证连通性:

redis-cli ping

返回 PONG 说明 Redis 工作正常。此时 Redis 只监听本机回环地址,属于相对安全的状态,后续如果不需要让其他机器连接,建议一直保持这个状态。

第三步:设置访问密码与安全配置

Redis 的配置文件通常位于 /etc/redis/redis.conf(Ubuntu)或 /etc/redis.conf(CentOS)。修改配置前,务必先备份一份:

sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.bak

然后用编辑器打开配置文件,重点修改以下几项。第一是设置密码,找到 requirepass 一行,去掉注释并设置一个足够长的密码:

requirepass 你的强密码

第二是确认绑定地址。如果 Redis 只给本机的网站程序使用,保持 bind 127.0.0.1 不变;如果确实需要让局域网其他机器访问,才改成对应内网地址,并配合防火墙限制来源 IP。第三,确认 protected-mode yes 处于开启状态,这是 Redis 自带的保护机制。修改完成后重启服务使配置生效:

sudo systemctl restart redis

之后用密码验证登录:redis-cli -a 你的强密码 ping,返回 PONG 即配置成功。设置密码后,不带密码的 redis-cli ping 会提示 NOAUTH 认证错误,这是正常现象。

第四步:将网站接入 Redis 缓存

以 WordPress 为例,接入 Redis 最常用的方式是安装 Redis Object Cache 这类对象缓存插件。步骤是:在 WordPress 后台安装并启用插件,确认服务器上已装好 phpredis 扩展(没有的话可在宝塔面板的 PHP 设置里安装 redis 扩展),然后在插件页面点击 Enable Object Cache 即可。启用后可以在插件页面看到连接状态和命中率。

对于自研的 PHP 程序,可以通过 phpredis 扩展或 Predis 纯 PHP 客户端连接,基本逻辑是:先连接 Redis 并用 auth 命令认证,然后把查询结果以键值形式写入,读取时先查缓存、未命中再查数据库。缓存键的命名建议带上业务前缀,例如 site:posts:123,方便后续统一清理。

机房中的缓存数据库服务器与网络设备
Redis 缓存服务通常部署在网站同机或内网服务器上

接入缓存后不要急着大规模上线,先在低峰期观察一段时间,确认页面数据正常、缓存命中率达到预期。如果页面出现数据不更新的情况,多半是缓存过期策略设置不当,需要检查写入缓存时是否设置了合理的过期时间(TTL),避免数据长期不刷新。

常见问题

1. 提示 NOAUTH Authentication required 怎么办?这说明 Redis 已启用密码,但客户端没有提供密码。检查程序配置中的密码项是否填写正确,或命令行是否带上了 -a 密码 参数。另外注意密码中如果包含特殊字符,在命令行中需要用引号包起来。

2. 网站连接 Redis 失败怎么排查?按顺序检查:服务是否在运行(systemctl status redis);绑定地址是否允许程序所在机器连接;防火墙是否放行了对应端口(仅远程访问时需要,默认端口 6379);密码是否正确。逐项排查基本都能定位到原因。

3. Redis 内存占用越来越高正常吗?作为缓存,Redis 内存增长到一定程度后趋于稳定是正常的,但建议在配置文件里设置 maxmemory 限制最大内存,并配置淘汰策略如 maxmemory-policy allkeys-lru,让 Redis 在内存到达上限后自动淘汰不常用的键,避免占用过多内存影响同机的其他服务。修改这类参数前记得先备份配置并评估业务影响。

4. 清空缓存会影响网站数据吗?Redis 缓存里的数据都可以从数据库重新生成,执行 redis-cli -a 密码 flushdb 清空后,网站会重新回源查询数据库,短时间内数据库压力会升高。所以建议在低峰期清理,并且只清理自己业务前缀的键,避免影响同机其他程序的缓存。

总结

本文从安装、启动、密码与安全配置,到网站接入缓存,完整走了一遍 Redis 缓存的落地流程。核心要点有三条:一是安装后务必设置密码并保持默认的本机绑定,除非确有必要才开放远程访问;二是接入业务时先小范围验证,观察命中率与数据一致性;三是给 Redis 设置内存上限和淘汰策略,防止它反过来拖垮服务器。完成这些配置后,你的网站在面对流量高峰时会从容很多。后续如果访问量继续增长,还可以考虑 Redis 主从或持久化方案,建议届时以 Redis 官方文档为准逐步演进。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容