最近项目中有个数据发现没有缓存到memcache中,经过分析,发现是数据过大的原因,百度的结果是memcache超过1M貌似就会缓存失败,解决的方法就是通过压缩,memcache提供了两种压缩方式
一是在做set时,
Memcache::set ( string $key , mixed $var [, int $flag [, int $expire ]] )
参数$flag 就是是否开启压缩:使用MEMCACHE_COMPRESSED指定对值进行压缩(使用zlib)。
另外一种是在连接服务器后:
Memcache::setCompressThreshold ( int $threshold [, float $min_savings ] )
threshold 控制多大值进行自动压缩的阈值。
min_saving 指定经过压缩实际存储的值的压缩率,支持的值必须在0和1之间。默认值是0.2表示20%压缩率。