我有安装
附注:我知道这两个php扩展之间的区别。我已经阅读了this question上的所有评论,它不是我的重复问题。
memcache
(在php5上)和memcached
(通过libmemcached在php7.2上安装),两者都连接到同一个memcached守护进程/服务器
。
Memcache::get
可以正常工作,并按照我的期望获取数据。但是当我执行Memcached::get
时,它总是返回0。
我已经检查过,使用这两个扩展时我都关闭了压缩。我还尝试在memcached
中切换Memcached::OPT_BINARY_PROTOCOL
,但仍然产生相同的空结果。
有趣的是,当我使用memcached
扩展添加键/值对并使用相同的键进行检索时,我获得了正确的值。
现在我不知道为什么它无法处理已经存储在memcached服务器中的数据。
编辑1:我已经使用telnet连接到我的memcached服务器,并检查了它实际上具有该值。此外,我检查了Memcached::getResultCode
返回的结果代码不是任何一种失败。
编辑2:我可能已经进一步缩小了范围。我注意到当我从memcache-php5
脚本保存["key1" => "value1"]
时,它可以正确地存储和检索数据。但是当我尝试使用memcached-php7.1
脚本检索相同的数据时,它返回0。
之后,我使用telnet从memcached服务器中删除了键为“key1”的数据。然后,我使用memcached-php7.1
脚本保存["key1" => "value1"]
,它可以正确地检索该数据。但是在尝试使用memcache-php5
脚本检索它时,它返回一种序列化数据"a:1:{s:4:\"key1\";s:6:\"value1\";}"
(这是json_encoded输出)
附注:我知道这两个php扩展之间的区别。我已经阅读了this question上的所有评论,它不是我的重复问题。