устранение 30-дневного лимита memcached - PullRequest
5 голосов
/ 02 сентября 2010

Почему memcached накладывает 30-дневное ограничение на время жизни записей в кэше?

В моей системе я всегда устанавливаю время жизни равным 30 дням, поскольку это максимально допустимое значение. Установка значения, намного превышающего 30 дней, была бы идеальной для моего приложения.

Есть ли способ изменить значение "30 дней" на что-то еще?

Я подумываю загрузить исходный код memcached и перекомпилировать его для собственного использования. Я бы либо изменил «30» на «300», либо, возможно, полностью избавился бы от этой проверки. Если бы я сделал это, изменил бы я что-нибудь, что могло бы вызвать сбои в работе memcached или плохую работу? Я ожидал бы, что элементам будет разрешено оставаться в кэше дольше, и эти элементы будут удалены из кэша, когда кэш заполнится.

Ответы [ 2 ]

10 голосов
/ 02 сентября 2010

30 дней - это предел, при котором мы считаем указанное вами время TTL с этого момента.

Если вы хотите более 30 дней, это нормально, просто используйте абсолютное время (time() + whatever).

Если вы не хотите истечения времени, как говорит ConroyP, просто используйте 0.

8 голосов
/ 02 сентября 2010

30 дней - это максимальный промежуток времени, в течение которого вы можете указать срок действия, но если вы собираетесь полностью исключить проверку срока действия, не проще ли установить время истечения равным 0? Это должно означать, что данные хранятся до тех пор, пока кэш не заполнится, и не удаляются для вставки более новых элементов.

Из документов PHP Memcache :

Параметр expire - время истечения в секундах. Если значение равно 0, срок действия элемента не истекает (но сервер memcached не гарантирует, что этот элемент будет храниться постоянно, его можно удалить из кэша, чтобы освободить место для других элементов).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...