最近项目中有个数据发现没有缓存到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%压缩率。