PHP gzipping JSON,保存到memcache ... Node.js服务 - 正确的标头?

时间:2012-11-21 03:16:41

标签: php node.js http-headers memcached gzip

在PHP中,我正在做类似的事情:

$gzdata = gzencode(json_encode($data), 9);
$mc->set("latest", $gzdata);

所以我从数据库中提取关联数组,将其转换为JSON,Gzip并存储到memcache

在我的Node.js中,我读取了memcached条目并提供它(客户端是memcache客户端)

client.get('latest', function(err, response) {
            if (err) { console.log("GET", err.type ); } 
            else{
                result.writeHead(200,{
                    "Content-Type": "application/json",
                    "content-encoding":"gzip"
                });


                result.end(response['latest']);
            }
        });

我正在

  

内容编码错误

页面上的

  

您尝试查看的页面无法显示,因为它使用了   无效或不受支持的压缩形式。

我甚至无法检查FB中的标题...任何想法我做错了什么?

1 个答案:

答案 0 :(得分:1)

您是否知道Memcache客户端已经可以为您进行压缩?

$memcache_obj = new Memcache;
$memcache_obj->addServer('memcache_host', 11211);
$memcache_obj->setCompressThreshold(20000, 0.2);

当压缩值大于20k且最小压缩率为20%时,这会压缩值。

另请参阅:Memcache::setCompressThreshold