php8.2宝塔配置Redis方法

php8.2宝塔配置Redis,尤其宝塔里面的配置,单纯的安装php里面的拓展是没有任何用的。

wp-config配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

define('WP_REDIS_DIR', '/www/object-cache-pro');
define('WP_REDIS_CONFIG', [
'token' => 'u0QZkTTB9g1klns3AFcVxhyrSsVWkR0iEiiR7WerupnTjjlzqiE6b1XUUPQ7', // 购买后获取,必填
'host' => '127.0.0.1',
'port' => 6379,
// 'password' => '你的密码', // 如果 Redis 设置了密码
'database' => 22, // 多站点时每个站点改成不同数字(0-15
'prefix' => 'demo22wptaodak_',
'maxttl' => 86400 * 3, // 推荐改成站点唯一前缀,避免多站冲突
'prefetch' => true, // 预取缓存,显著减少延迟(高性能关键)
'split_alloptions' => true, // 把 alloptions 分拆存储,防止大对象阻塞
'strict' => true, // 严格模式,更可靠
'debug' => false, // 生产环境关闭

// 以下是进阶高性能选项(推荐开启)
'compression' => 'zstd', // 或 'lz4',zstd 压缩率更好
'serializer' => 'igbinary', // 比 PHP 序列化更快(需安装对应 PHP 扩展)
'timeout' => 1.0, // 连接超时(秒)
'read_timeout' => 0.5,
'retry_interval' => 100, // 重试间隔(毫秒)
'persistent' => true, // 持久连接,减少开销
'save_commands' => false, // 生产环境关闭
]);

define('WP_REDIS_DISABLED', false);

手动编译安装支持 zstd 的 PhpRedis

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cd ~
wget https://pecl.php.net/get/redis -O redis.tgz
tar -zxvf redis.tgz
cd redis-*

# 3. 生成配置脚本(phpize)
/www/server/php/82/bin/phpize


# 4. 关键的 configure 步骤
./configure --with-php-config=/www/server/php/82/bin/php-config \
--enable-redis-igbinary \
--enable-redis-zstd

# 5. 如果上面 configure 成功,再编译
make clean
make -j$(nproc) && make install

如果4步出错误

configure: error: Please reinstall the libzstd distribution

1
2
3
4
5
6
# 如果是 CentOS / AlmaLinux / Rocky(推荐先试这条)
yum install -y libzstd-devel gcc make autoconf

# 如果是 Ubuntu / Debian(试这条)
apt-get update && apt-get install -y libzstd-dev build-essential

添加扩展并重启 PHP

1
2
3
4
5
6
# 添加到 php.ini(把 82 改成你的版本)

echo -e "\n[redis]\nextension=redis.so" >> /www/server/php/82/etc/php.ini

# 重启 PHP

验证是否成功支持 zstd

1
2
3
# 查看支持的压缩方式(应该包含 zstd)
/www/server/php/82/bin/php -r "print_r((new Redis())->getAvailableCompressors());"

后期处理

wordpress后台提示这个Redis uses the noeviction policy
不配置会导致内存消耗殆尽

/www/server/redis/redis.conf

1
2
3
4
5
6
7
8
9
10
11

# 内存上限(建议占服务器可用内存的 20%-40%)
maxmemory 256mb # 小站点用 128-256mb,中大型或 WooCommerce 用 512mb~1GB

# 驱逐策略(WordPress 最推荐)
maxmemory-policy allkeys-lru # 或者 allkeys-lfu(更智能,推荐尝试)

# 持久化建议(之前我们已讨论过)
appendonly yes
appendfsync everysec

保存后重启 Redis:宝塔面板 → Redis → 重启