сжатие кэша apc - PullRequest
       1

сжатие кэша apc

1 голос
/ 15 февраля 2011

Я хочу сохранить некоторое значение ключа.Я вижу, что 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 );  
}

1 Ответ

2 голосов
/ 15 февраля 2011

APC на данный момент не поддерживает сжатие.

Вероятно, это никогда не произойдет, потому что это не то, для чего предназначен apc.

APC - это скорее система кэширования кода операции, чем память значений ключабаза данных, такая как memcached, хотя она может быть в значительной степени использована для обеих целей.

Но если ваша цель - просто хранение данных, memcached, вероятно, является лучшим вариантом, потому что именно в этом его цель и направление, в котором она будет оптимизирована и разработана.также поддерживает распределение / масштабирование / репликацию / вы можете запустить его по сети и т. д.

Однако, чтобы дать вам альтернативу.Почему бы вам просто не сжимать и не распаковывать прямо в приложении прямо перед / после сохранения / извлечения из apc?Вы можете легко определить свой собственный обработчик кэширования для этого.вроде как ты это уже сделал в своем вопросе.Я не понимаю, почему APC должен делать это "на лету".Я лично предпочел бы сделать это в приложении для большей гибкости и масштабируемости (например, вы можете масштабировать его для распространения на fcgi-серверах)

...