удар
Чтобы получить список ключей в Bash, выполните следующие действия.
Сначала определите следующую функцию-оболочку, чтобы упростить ее использование (скопируйте и вставьте в оболочку):
function memcmd() {
exec {memcache}<>/dev/tcp/localhost/11211
printf "%s\n%s\n" "$*" quit >&${memcache}
cat <&${memcache}
}
Memcached 1.4.31 и выше
Вы можете использовать lru_crawler metadump all
команду для дампа (большей части) метаданных (всех) элементов в кэше.
В отличие от этого cachedump
, он не вызывает серьезных проблем с производительностью и не имеет ограничений на количество ключей, которые могут быть сброшены.
Пример команды с использованием ранее определенной функции:
memcmd lru_crawler metadump all
См .: ReleaseNotes1431 .
Memcached 1.4.30 и ниже
Получите список плит с помощью команды статистики элементов , например:
memcmd stats items
Для каждого класса slub вы можете получить список элементов, указав идентификатор slub вместе с ограниченным числом ( 0
- неограниченно):
memcmd stats cachedump 1 0
memcmd stats cachedump 2 0
memcmd stats cachedump 3 0
memcmd stats cachedump 4 0
...
Примечание: вам нужно сделать это для каждого сервера memcached.
Чтобы перечислить все ключи из всех заглушек, вот однострочный (на один сервер):
for id in $(memcmd stats items | grep -o ":[0-9]\+:" | tr -d : | sort -nu); do
memcmd stats cachedump $id 0
done
Примечание. Приведенная выше команда может вызвать серьезные проблемы с производительностью при доступе к элементам, поэтому не рекомендуется запускать ее в реальном времени.
Ноты:
stats cachedump
сбрасывает только HOT_LRU
(IIRC?), который управляется фоновым потоком по мере выполнения активности. Это означает, что в достаточно новой версии, в которой включен алгоритм 2Q, вы получите снимки того, что находится только в одном из LRU.
Если вы хотите просмотреть все, lru_crawler metadump 1
(или lru_crawler metadump all
) - это новый, в основном официально поддерживаемый метод, который будет асинхронно сбрасывать столько ключей, сколько вы хотите. вы получите их не по порядку, но он попадает во все LRU, и, если вы не удаляете / не заменяете элементы, несколько запусков должны дать одинаковые результаты.
Источник: GH-405 .
Связанный: