Вопрос

В "Memcache Viewer" есть ли какой-нибудь способ создать список существующих ключей?Просто для отладки, конечно, а не для использования в каких-либо скриптах!

Я спрашиваю, потому что не похоже, что GAE SDK использует "настоящий" сервер memcache, поэтому я предполагаю, что он эмулируется на Python (для простоты, поскольку это всего лишь сервер разработки)..Это означало бы, что где-то есть dict с ключами / значениями..

Это было полезно?

Решение

Люди часто просят об этом в списке memcached, иногда с тем же типом " на случай, если я захочу посмотреть вокруг, чтобы что-то отладить " настроения.

Лучший способ справиться с этим - узнать, как вы генерируете свои ключи, и просто искать информацию, когда вы хотите узнать, что хранится для данного значения.

Если у вас слишком много вещей, использующих memcached, чтобы сделать это в рамках сеанса отладки, тогда начните регистрировать доступ.

Но имейте в виду - memcached работает быстро, потому что он вообще не допускает подобных вещей. Сервер сообщества имеет ограниченную функциональность для получения подмножества ключей, доступных в данном классе slab, но это, вероятно, не то, что вы действительно хотите, и, надеюсь, Google не реализует его в своих. :)

Другие советы

Нет.Я тоже не нашел такой функциональности в memcached.

Размышляя об этой проблеме, я нашел это ограничение понятным - оно потребовало бы ведения реестра ключей со всеми связанными проблемами, такими как истечение срока действия ключа, аннулирование и, конечно, блокировка.Такая система была бы не такой быстрой, какой должны быть memcaches.

Memcache разработан, чтобы быть быстрым, и для этой функции нет убедительного варианта использования что оправдывает накладные расходы, необходимые для команды, которая расходится с остальной частью memcached.

GAE SDK имитирует memcached, поэтому он также не предлагает эту функцию.

Самым простым способом, который я мог придумать, было бы сохранение ключа memcache с известным идентификатором, а затем добавление к нему каждый раз, когда вы вставляете новый ключ. Таким образом, вы можете просто запросить один ключ, чтобы получить список существующих ключей.

Вот возможное решение. Я не знаком с Google App Engine, но на обычном сервере memcache вы можете перечислить все ключи через telnet следующим образом:

telnet 127.0.0.1 11211
stats items
STAT items:7:number 5
STAT items:7:age 88779
STAT items:7:evicted 0
STAT items:7:evicted_time 0
STAT items:7:outofmemory 0
STAT items:7:tailrepairs 0
... etc
END
stats cachedump 7 100
ITEM __builtin__.str_is_browser_supported·user_agent_hash=5706b885fdad3f7049dfb39455dfa7ab10086d97 [269 b; 1298926467 s]
END

Спасибо сообщению в блоге Грэма Кинга за этот симпатичный маленький рецепт .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top