Docker Redis数据库缓存配置(WordPress)

隔壁群天天吹 Redis,我索性也装一个。本博客宿主机为 Docker 环境,用到的容器包括 PHP 容器、Nginx 容器以及 MySQL 容器,以及新增的 Redis 容器。
网络环境
本博客运行所需容器均位于同一个 Docker 桥接网络下,各个容器间可以通过容器名访问其他容器。
这样的好处是网络交互均在内部进行,除 Nginx 外,不需要映射其他端口至外部端口。
前期准备
既然是 Docker 环境,首先拉取一个 Redis 容器下来:
$docker pull redis
检查 PHP 容器所处的网络组,记住其网络名:
所有准备工作完成。
配置并启动Redis容器
- 创建配置文件及目录
创建 Redis 所需目录:mkdir ~/conf mkdir -p ~/data/redis_data
克隆默认配置文件
redis.conf
:# www.azimiao.com 梓喵出没博客 cd ~/conf wget https://raw.githubusercontent.com/redis/redis/unstable/redis.conf
按需配置
redis.conf
。举个例子,加入连接密码:requirepass mypassword //取消前面的#号并修改密码文本
- 启动容器
启动 Redis 容器,并映射配置文件与数据目录:# 梓miao出没博客 www.azimiao.com docker run -itd \ --name redis_server1 \ -v /home/yetu/conf/redis.conf:/etc/redis.conf \ -v /home/yetu/data/redisdata:/data \ --network blog_default \ --restart=always redis redis-server /etc/redis.conf
命令解析:
-v /home/yetu/conf/redis.conf:/etc/redis.conf
:映射配置文件-v /home/yetu/data/redis_data:/data
:映射数据文件--network blog_default
:加入 blog_default 网络redis-server /etc/redis.conf
:使用配置文件启动容器内的 redis-server
之后在 php 容器中,可以 ping 通
redis_server1
:#ping redis_server1 PING redis_server1 (172.18.0.4): 56 data bytes 64 bytes from 172.18.0.4: seq=0 ttl=64 time=0.177 ms 64 bytes from 172.18.0.4: seq=1 ttl=64 time=0.181 ms 64 bytes from 172.18.0.4: seq=2 ttl=64 time=0.162 ms
配置PHP
检查 php 是否安装了 Redis 扩展:
<?php echo phpinfo(); ?>
如果安装过 redis 扩展,则有如下显示:
如果没有安装,则进入 PHP 容器快速安装 redis 扩展:
# docker exec -it php /bin/sh
# install-php-extensions redis
# 按 ctrl+p+q退出
配置WordPress
编辑wp-config.php
,加入插件连接所需的参数定义:
define("WP_REDIS_HOST","redis_server1");//主机名(docker容器名)
define("WP_REDIS_PORT",6379);//端口(配置文件默认6379)
define("WP_REDIS_PASSWORD","yourpassword");//密码(如有)
# 其他参数参考:https://github.com/rhubarbgroup/redis-cache/wiki/Connection-Parameters
之后在后台插件商店搜索插件Redis Object Cache
并安装:
最后,在后台设置->Redis
处点击Enable Object Cache
,如果得法,即可将 WordPress 连接至 Redis。
其他
上面安装的 Redis 只能被同一 Docker 桥接网络下的内部容器访问,且没有映射任何宿主机端口,相对来说还是比较安全的。