memcached истекает раньше времени - PullRequest
0 голосов
/ 10 мая 2011

Я пытаюсь использовать Memcached для кэширования всех многоязычных строк вместо использования большого массива для всех страниц PHP.

Что я делаю, так это извлекаю переведенные фразы из базы данных, и в цикле я устанавливаю каждую в memcached:

while (fetching database) {<br> $memcached->set($language.':'.$string_id, $translation, 0, 0);<br> }

Проблема в том,большинство из них (не все, кажется случайным) автоматически «истекают» после, не зная, почему.
Это моя статистика:

Текущая свободная память сервера: более 1 ГБ
Общее пространство Memcached:16 МБ
В настоящее время используется Memcached: 2,66 МБ

Статистика «выселения» (удаленные элементы освобождают память для новых элементов) увеличивают количество, когда я запускаю цикл.Это не имеет особого смысла для меня, потому что я настроен так, чтобы никогда не истекать, и у memcached все еще много свободного места.

Кто-нибудь знает, что может происходить?
Спасибо.

1 Ответ

1 голос
/ 10 мая 2011

0 - это не 30 дней, это 0 (т.е. не истекает).

16 МБ недостаточно для работы. Вы очень быстро уносите одну из своих плит и пытаетесь сохранить данные в другой, и у вас нет места для этого.

Если вы действительно хотите, чтобы это умещалось в пределах 16 МБ, вы можете настроить плиты таким образом, чтобы они имели фиксированный размер. Вероятно, намного проще просто дать ему достаточно оперативной памяти для работы с различными размерами данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...