Відповіді:
Правильна відповідь була б echo "stats cachedump SLABS_ID LIMIT" | nc HOSTNAME PORT
напр. echo "stats cachedump 15 4" | nc 127.0.0.1 11211
Це дало б результат у рядках:
ITEM cache_path-comments%2Fpage%2F2 [2211 b; 1337195558 s]
ITEM cache_path-comments%2Fpage%2F5 [2205 b; 1337195558 s]
ITEM cache_path-comments%2Fpage%2F6 [2179 b; 1337195558 s]
ITEM cache_path-comments [2164 b; 1337195558 s]
END
Примітка: Це незадокументована команда, яка не підтримується командою, що склалася, і її можна видалити в будь-якій версії. Для повної довідки ознайомтеся з командою Розуміння мемованної статистики кешованої пам’яті .
В останній версії memcached
також є memcached-tool
сценарій perl, наприклад використання:
memcached-tool localhost:11211 dump | less
який скидає всі ключі та значення.
Щоб скинути список ключів із сервера, використовуйте memcdump
/ memdump
інструмент, наприклад
memcdump --servers=localhost
Щоб скинути всі об'єкти:
memcdump --servers=localhost | xargs -L1 -I% sh -c 'echo "get %" | nc localhost 11211'
Щоб скинути всі ключові значення в окремі файли:
while read -r key; do [ -f "$key" ] || echo "get $key" | nc localhost 11211 > "$key.dump"; done < <(memcdump --server localhost)
Для друку ключового значення можна використовувати memccat
команду, наприклад
memccat CACHE-KEY
Щоб скинути всі ключі в оболонці Bash, спробуйте:
exec {memcache}<>/dev/tcp/localhost/11211; printf "stats items\nquit\n" >&${memcache}; cat <&${memcache}
Ось приклад для отримання значення одного елемента за допомогою netcat
:
echo "get 13456_-cache-some_object" | nc 127.0.0.1 11211
Див.: Як експортувати всі ключі та значення з пам’яті з Python?
apt install libmemcached-tools
, але потім все ще не було на моєму шляху, так /usr/share/memcached/scripts/memcached-tool localhost:11211 dump
. Ubuntu 18.
Спробуйте скористатися telnet
командою, наприклад:
$ telnet 0 11211
stats
stats items
set key 1 23 8
get key
Встановіть, libmemcached-tools
а потім ви можете використовувати цю команду, щоб отримати всі ключі:
memcdump --server=127.0.0.1
Щоб переглянути вміст, ви можете запитати конкретний ключ:
memccat --server=127.0.0.1 SOME_KEY
або ви можете переключити список ключів у Bash:
for key in $(memcdump --server=127.0.0.1); do echo ------ $key ------; memccat --server=127.0.0.1 $key; done
Обов’язково використовуйте 127.0.0.1 (якщо ви виконуєте команду на тому ж хості), оскільки localhost
це, здається, не працює.
У базовій пам'яті я не думаю, що існує спосіб запиту ключів, що зберігаються на сервері. Єдина думка, яку ви можете отримати, - це статистика, пов’язана зі зберіганням та збереженими предметами.
Деякі постачальники, які розробили сумісні сумісні рішення, наприклад, Gear6 , однак додали функціональність для дозволу на запити.