php - 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)
两者都使用相同的密钥访问,所以我认为客户端必须有所不同?我们怎样才能让第二台服务器像第一台一样工作?
解决方案
这是由于流明服务器上的序列化程序未设置为 IGBINARY。似乎配置中记录的“序列化程序”参数不起作用
推荐阅读
- linux - 查找列是否在范围内
- angular - Angular:如何将多个表单控件附加到表单组
- python - 根据相似性为单词分配类别
- c++ - 带有这个指针的 memcpy 安全吗?
- java - 让 Jetty 优雅地关闭启动失败的 webapp 上下文
- mysql - IN(CONCAT()) 未在 MySQL 中返回逗号分隔字符串的结果
- python - 为什么我包含的查询在 GeoDjango 的空间坐标中不起作用?
- java - 将特定的外部库包含到 Gradle 构建的 jar 文件中
- sql - 亚马逊红移中的 SQL 正则表达式 substr 函数
- javascript - 单击时获取多个自定义属性值