Redis向键名添加无效字符

问题描述

我们在两个不同的服务器上使用 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。似乎配置中记录的“序列化程序”参数不起作用