Почему Мемкеш удаляет ключи?

Столкнулись с ситуацией, когда Мемкеш кэширует не все ключи. Не смотря на то, что ttl установен в месяц, значение может исчезнуть раньше. Понятно, что памяти не хватает. Но как это правильно проанализировать и есть ли какие-то инструменты для этого?
  • Вопрос задан
  • 5641 просмотр
Пригласить эксперта
Ответы на вопрос 3
Попробуйте использовать Redis (habrahabr.ru/post/64917 ).
"Redis — это высокопроизводительное нереляционное распределённое хранилище данных. В отличие от Memcached, который может в любой момент удалить ваши данные, вытесняя старые записи новыми, Redis хранит информацию постоянно, таким образом он похож на MemcacheDB.
Высокая скорость работы Redis обеспечивается тем, что данные хранятся в оперативной памяти и сохраняются на диск либо через равные промежутки времени, либо при превышении определённого количества не сохранённых запросов."
Ответ написан
Комментировать
golotyuk
@golotyuk
Memcached использует алгоритм LRU для определения, какие ключи вытеснять из памяти. Поэтому небольшая нехватка памяти не страшна. Посмотрите статистику вытеснений:
print_r(memcache_get_stats());
Ключ evictions покажет количество вытеснений. Если значение большое, нужно принимать меры. Первое - нужно попробовать оптимизировать расход памяти. Если evictions все равно растут - нужно ставить новые сервера и использовать кластер:
$m = new Memcache;
$m-> addServer('10.10.0.1');
$m-> addServer('10.10.0.2');
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
просто добавьте ему памяти или используйте memcachedb
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы