我想存储一些关键值。 我看到memcache api支持动态压缩: memcache_set(obj,var,value,MEMCACHE_COMPRESSED,ttl)
apc怎么样? 我找不到任何文件。
我的目标,例如在php:
function cache( $key, $value )
{
$data = serialize( $value );
if ( strlen( $data ) >= 1024 )
$data = 'z' . gzcompress( $data, 1 );
else
$data = '=' . $data;
return apc_store( $key, $data, $ttl );
}
答案 0 :(得分:2)
APC目前不支持压缩。
它可能永远不会因为它不是apc的目的。
APC更像是一个操作码缓存系统,而不是像memcached这样的键值内存数据库,尽管它可以大大用于这两个目的。
但是如果只是存储数据是你的目标memcached可能是一个更好的选择,因为它的目的和它将被优化和开发的方向。它还支持分发/扩展/复制/你可以通过网络等运行它。 / p>
然而,给你一个替代方案。为什么不在存储/从apc中获取之前/之后直接在应用程序中压缩和解压缩?您可以轻松地为此定义自己的缓存处理程序。你已经在你的问题中如何做到这一点。我不明白为什么apc应该“动态”执行此操作。我个人更喜欢在应用程序中执行此操作以获得更高的灵活性和可伸缩性(例如,您可以将其扩展为分发fcgi服务器)