解决memcached的内容为乱码的现象

最近搞一个技术实现:将页面的html源码为value,将页面的url作为key保存到memcached里。然后利用nginx+memcached模块进行访问。可以大大提高web系统的性能和速度。

实现的过程中遇到一个困难:从memcached里取出来的value有时候是乱码。经过大量的试验,我发现了一个规律:页面大小不超过64k的,取出来的值不存在乱码问题。一旦超过这个值,就变成了乱码。看来64k是个很敏感的大小。但是memcached的存放单个值的大小最大值是1M。64kb还小的很啊。于是,我试试直接用memcached的服务端命令把600kb的value存入到memcached里,结果是成功了。说明问题是在客户端了。

我查了一下memcached的客户端(memcached client for java),其中有个方法setCompressEnable(boolean compressEnable),意思是超过多少大小(通过这个setCompressThreshold(long compressThreshold)方法设置大小)就进行压缩。

于是我设置了一下mcc.setCompressEnable(false);

再次试验,成功

 

 

http://weii.iteye.com/blog/620207

posted on 2012-10-22 20:11  jay.windows  阅读(3267)  评论(0编辑  收藏  举报

导航