Python脚本可以从memcache中检索值,但PHP脚本得到的结果为空
我运行了一个python脚本,其中缓存了一些数据Python脚本可以从memcache中检索值,但PHP脚本得到的结果为空,php,python,memcached,Php,Python,Memcached,我运行了一个python脚本,其中缓存了一些数据 self.cache.set('test', 'my sample data', 300) data = self.cache.get('test') self.p(data) 此程序将打印“我的样本数据”。。。一切都很好,但当我尝试从php访问此密钥时 $data = $this->cache->get('test'); print_r($test); 我只得到一个空结果 所以我检查服务器的统计数据 $list = array(
self.cache.set('test', 'my sample data', 300)
data = self.cache.get('test')
self.p(data)
此程序将打印“我的样本数据”。。。一切都很好,但当我尝试从php访问此密钥时
$data = $this->cache->get('test');
print_r($test);
我只得到一个空结果
所以我检查服务器的统计数据
$list = array();
$allSlabs = $this->cache->getExtendedStats('slabs');
$items = $this->cache->getExtendedStats('items');
foreach($allSlabs as $server => $slabs) {
foreach($slabs AS $slabId => $slabMeta) {
$cdump = $this->cache->getExtendedStats('cachedump',(int)$slabId);
foreach($cdump AS $server => $entries) {
if($entries) {
foreach($entries AS $eName => $eData) {
$list[$eName] = array(
'key' => $eName,
'server' => $server,
'slabId' => $slabId,
'detail' => $eData,
'age' => $items[$server]['items'][$slabId]['age'],
);
}
}
}
}
}
ksort($list);
print_r($list);
这个关键的“测试”就在那里。。。但我无法访问它
如果我在php中缓存一些东西,我每次都会得到结果,但不知何故,这个python+php缓存不起作用
如果有人知道哪里会有问题,请给出建议。。。我尝试了所有方法可能是PHP和Python之间的哈希不匹配吗?解决方案如下: 将以下内容添加到Python脚本以更改哈希的计算方式
import memcache
import binascii
m = memcache.Client(['192.168.28.7:11211', '192.168.28.8:11211
', '192.168.28.9:11211'])
def php_hash(key):
return (binascii.crc32(key) >> 16) & 0x7fff
for i in range(30):
key = 'key' + str(i)
a = m.get((php_hash(key), key))
print i, a
您是否可以包含“检查服务器统计”代码段输出的相关摘录?