在修改插件配置启用 Redis Object Cache Pro 的时候,发现这个插件有一个高性能模式,但是直接修改配置启用这个模式,Redis Object Cache Pro会报以下错误
An error occurred during the instantiation of the configuration:
PhpRedis was not compiled with Zstandard compression support, see For more information about enabling compressions see: https://objectcache.pro/docs/data-encoding/
这是因为即使在宝塔PHP扩展里安装了igbinary和zstd,我们继续安装PHP Redis扩展,他不会主动去支持Zstandard压缩。
这篇文章写如何解决这个问题,编译支持Zstandard压缩的PHP。
安装igbinary和zstd扩展
这两个扩展在宝塔PHP设置中的安装扩展里面直接安装就行。

卸载PHP Redis(如有)
如果PHP中已经安装了Redis扩展,那么在这里你需要卸载掉它。如果没有安装,跳过这个环节即可。

注意:宝塔面板中的PHP卸载Redis扩展可能会将Redis程序一起卸载掉。如果Redis被一并卸载,重新安装即可。
编译并安装支持Zstandard压缩的Redis扩展
连接服务器的SSH,或者使用宝塔终端,将下列的命令复制并粘贴,直接运行即可。中间无需其他操作。
下面命令中使用的是宝塔PHP82版本,如果是其他PHP版本,需要更改版本号以及扩展目录名称。
cd ~
apt install libzstd-dev -y
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 && make install
echo -e "\n[redis]\nextension = /www/server/php/82/lib/php/extensions/no-debug-non-zts-20220829/redis.so\n" >> /www/server/php/82/etc/php.ini
echo -e "\n[redis]\nextension = /www/server/php/82/lib/php/extensions/no-debug-non-zts-20220829/redis.so\n" >> /www/server/php/82/etc/php-cli.ini
/etc/init.d/php-fpm-82 reload
cd ~ && rm -rf ~/redis-* ~/redis.tgz
如果不知道版本号和扩展目录,那么可以从PHP的配置文件中获取。

其中 /www/server/php/82/lib/php/extensions/no-debug-non-zts-20220829 即是扩展目录,”82“是PHP版本号,把命令中相关的内容替换即可。

提示 Build complete. 以及 Reload done.就代表命令执行完成了。

可以进入配置文件设置验证一下,看到结尾的 [redis] 和 extension 行就代表完成了。
设置完后我们就可以正常开启 Redis Object Cache Pro 高性能模式缓存了。
具体有多大性能提升就不清楚了,量少的访问下 ,区别可能不大。