首页 > 解决方案 > 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)

两者都使用相同的密钥访问,所以我认为客户端必须有所不同?我们怎样才能让第二台服务器像第一台一样工作?

标签: phpredislumenpredis

解决方案


这是由于流明服务器上的序列化程序未设置为 IGBINARY。似乎配置中记录的“序列化程序”参数不起作用


推荐阅读