#caching #memcached
#кэширование #memcached
Вопрос:
Возможно ли изменить все пары ключ / значение в экземплярах memcache с помощью командной строки?
Скажем, у меня есть 10 серверов memcache, и у них есть пары ключ-значение, и у всех них есть объекты с 30-дневным сроком действия. Но они не истекают одновременно, и я не хочу, чтобы все они истекали одновременно. Я хочу изменить срок действия объектов на 10 дней. Как я могу внести это изменение?
Возможно ли это вообще?
Можно ли это сделать с помощью командной строки? Должен ли я писать программу для этого?
Комментарии:
1. Memcache намеренно имеет очень простой механизм истечения срока действия. Он разработан с учетом очень быстрого кэширования восстанавливаемых данных. Что делает ваше приложение, что требует согласованного истечения срока действия на разных серверах?
2. @ssamuel Я переношу данные между источниками данных, и некоторые данные обновляются. я хочу, чтобы срок действия кэша истек на определенный период, затем я хочу, чтобы он был повторно заполнен из нового источника данных.
Ответ №1:
Вы можете добиться этого, периодически касаясь значений. Часто задаваемые вопросы описывают способ сделать это.
Однако memcache не предназначен для этого. То, что вы делаете, больше похоже на сценарий постоянного кэша. Если вам нравится семантика memcache, Membase и MemcacheDB предоставляют решения, которые могут лучше соответствовать вашим потребностям. Существует много различных систем постоянного кэширования, которые делают это так же хорошо.
В зависимости от ваших спецификаций, иногда ускорение вашего источника данных может обеспечить лучшую производительность, чем memcache. Современные DMBSS сильно кэшируют с помощью разумных протоколов доступа. Это полностью зависит от того, как выглядят ваши источники данных и насколько гибким вы обладаете дизайном вашей системы.
Ответ №2:
Memcache имеет интерфейс telnet. Затем вы можете использовать FLUSH_ALL
или FLUSH_ALL <seconds_to_wait>
, если вы это имеете в виду…
Комментарии:
1. жаль это слышать. Я предполагаю, что вы подключились к этому серверу, и срок действия команды не истек для элементов? не могли бы вы предоставить дополнительную информацию?
2. такого предположения нет. я не хочу очищать весь кеш, вы знаете, каковы будут последствия очистки огромного кеша?