Задать вопрос

Требуется совет по Memcached

Есть memcached сервер, на нем хранятся очень много записей требующих быстрого доступа к ним. Но у множества записей истекает срок годности достаточно быстро. И как я понимаю Сервер не высвобождает ресурсы занятые под запись а лишь перестает их отдавать.

Поскольку большинство ключей уникальны и генерируются автоматически делать delete очень проблематично.

Вопрос в том есть ли какой то инструмент, скрипт, сторонняя программа, какой-нибудь клиент который поможет высвободить ресурсы.

Я пытался использовать код
  1. $list = array();
  2.   $allSlabs = $m->getExtendedStats('slabs');
  3.   $items = $m->getExtendedStats('items');
  4.   foreach($allSlabs as $server => $slabs){
  5.     foreach($slabs AS $slabId => $slabMeta){
  6.       $cdump = $m->getExtendedStats('cachedump',(int)$slabId);
  7.       foreach($cdump AS $keys => $arrVal){
  8.         foreach($arrVal AS $k => $v){
  9.            $list[$k] = array(
  10.                  'key' => $k,
  11.                  'server' => $server,
  12.                  'slabId' => $slabId,
  13.                  'detail' => $v,
  14.                  'age' => $items[$server]['items'][$slabId]['age']
  15.                  );
  16.         }
  17.       }
  18.     }
  19.   }
* This source code was highlighted with Source Code Highlighter.


Для того что бы получить список ключей на сервере, но он не возвращает уже истекшие ключи, подскажите пожалуйста, есть ли способ высвободить ресурсы или я что-то не так понимаю
  • Вопрос задан
  • 2895 просмотров
Подписаться 5 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
homm
@homm
Как вы судите о неосвобожденных ресурсах? Количество занимаемой памяти не уменьшается?

Когда прикручивал кеш к своему проекту, обнаружил что Мемкеш в принципе кушает память не соразмерно хранимым данных. Отказался в пользу Редиса. Но тут нужно смотреть индивидуально. В Редисе нет вытеснения при переполнении некоего лимита, только по таймауту, так что всем подряд он не подойдет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы