问题描述
我们在两个不同的服务器上使用 Redis:
一个有 PHPRedis,使用 IGBINARY 作为序列化器。
PHP 7.2.x
redis
Redis Support => enabled
Redis Version => 3.1.1
Available serializers => PHP,igbinary
另一个是使用 Lumen 和 predis(再次使用 IGBinary)。
PHP 7.3.x
redis
Redis Support => enabled
Redis Version => 5.3.4
Available serializers => PHP,json,igbinary
在第一台服务器上通过 Redis->zRange 检索密钥时,我们得到了正确的信息:
[1287871]=> 浮动 (23) [1299984]=> 浮动(23)
在第二台服务器上,我们得到(实际上在键名前面有奇怪的字符)
[1287871]=> 浮动(23) [1299984]=> 浮动(23)
两者都使用相同的密钥访问,所以我假设的客户端肯定有所不同?我们怎样才能让第二台服务器像第一台一样工作?
解决方法
这是由于在 Lumen 服务器上未将序列化程序设置为 IGBINARY。似乎配置中记录的“序列化程序”参数不起作用