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

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

Столкнулись с ситуацией, когда Мемкеш кэширует не все ключи. Не смотря на то, что ttl установен в месяц, значение может исчезнуть раньше. Понятно, что памяти не хватает. Но как это правильно проанализировать и есть ли какие-то инструменты для этого?
  • Вопрос задан
  • 5652 просмотра
Подписаться 5 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
Мастер Софт Саратов
от 200 000 до 260 000 ₽
Stream Telecom Санкт-Петербург
от 90 000 до 120 000 ₽
Beetbarrel Калининград
До 120 000 ₽