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-*
/www/server/php/82/bin/phpize
./configure --with-php-config=/www/server/php/82/bin/php-config \ --enable-redis-igbinary \ --enable-redis-zstd
make clean make -j$(nproc) && make install
|
如果4步出错误
configure: error: Please reinstall the libzstd distribution
1 2 3 4 5 6
| yum install -y libzstd-devel gcc make autoconf
apt-get update && apt-get install -y libzstd-dev build-essential
|
添加扩展并重启 PHP
1 2 3 4 5 6
|
echo -e "\n[redis]\nextension=redis.so" >> /www/server/php/82/etc/php.ini
|
验证是否成功支持 zstd
1 2 3
| /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 → 重启