Memcache Commands

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Шпаргалка з команд

З https://lzone.de/cheat-sheet/memcached

Підтримувані команди (офіційні та деякі неофіційні) задокументовані в документі doc/protocol.txt.

На жаль, опис синтаксису не є дуже зрозумілим, і проста команда довідки, яка перелічує існуючі команди, була б набагато краще. Ось огляд команд, які ви можете знайти в джерелі (на 19.08.2016):

КомандаОписПриклад

get

Читає значення

get mykey

set

Встановлює ключ безумовно

set mykey <flags> <ttl> <size> <p>Переконайтеся, що використовуєте \r\n як роздільник рядків при використанні інструментів Unix CLI. Наприклад</p> printf "set mykey 0 60 4\r\ndata\r\n"

add

Додає новий ключ

add newkey 0 60 5

replace

Перезаписує існуючий ключ

replace key 0 60 5

append

Додає дані до існуючого ключа

append key 0 60 15

prepend

Додає дані до початку існуючого ключа

prepend key 0 60 15

incr

Збільшує числове значення ключа на вказане число

incr mykey 2

decr

Зменшує числове значення ключа на вказане число

decr mykey 5

delete

Видаляє існуючий ключ

delete mykey

flush_all

Негайно анулює всі елементи

flush_all

flush_all

Анулює всі елементи через n секунд

flush_all 900

stats

Виводить загальну статистику

stats

Виводить статистику пам'яті

stats slabs

Виводить статистику вищого рівня розподілу

stats malloc

Виводить інформацію про елементи

stats items

stats detail

stats sizes

Скидає лічильники статистики

stats reset

lru_crawler metadump

Виводить (більшість) метадані (всі) елементів в кеші

lru_crawler metadump all

version

Виводить версію сервера

version

verbosity

Збільшує рівень журналу

verbosity

quit

Завершує сеанс

quit

Статистика трафіку

Ви можете запитати поточну статистику трафіку за допомогою команди

stats

Ви отримаєте список, який відображає кількість з'єднань, байтів у/в та багато іншого.

Приклад виводу:

STAT pid 14868
STAT uptime 175931
STAT time 1220540125
STAT version 1.2.2
STAT pointer_size 32
STAT rusage_user 620.299700
STAT rusage_system 1545.703017
STAT curr_items 228
STAT total_items 779
STAT bytes 15525
STAT curr_connections 92
STAT total_connections 1740
STAT connection_structures 165
STAT cmd_get 7411
STAT cmd_set 28445156
STAT get_hits 5183
STAT get_misses 2228
STAT evictions 0
STAT bytes_read 2112768087
STAT bytes_written 1000038245
STAT limit_maxbytes 52428800
STAT threads 1
END

Статистика пам'яті

Ви можете запитати поточну статистику використання пам'яті за допомогою

stats slabs
### Memcache commands

#### Stats
- **stats** - General statistics.
- **stats items** - Detailed statistics about items.
- **stats slabs** - Detailed statistics about slabs.
- **stats sizes** - Detailed statistics about sizes.
- **stats cachedump <slab_id> <number>** - Dump keys and values from a slab.
- **stats conns** - Detailed statistics about connections.
- **stats settings** - Detailed statistics about settings.
- **stats detail** - Detailed statistics about general stats.
- **stats sizes** - Detailed statistics about sizes.
- **stats reset** - Reset statistics.

#### Set
- **set <key> <flags> <exptime> <bytes> [noreply]** - Store data.
- **add <key> <flags> <exptime> <bytes> [noreply]** - Store data, but only if the server doesn't already hold data for this key.
- **replace <key> <flags> <exptime> <bytes> [noreply]** - Store data, but only if the server already holds data for this key.
- **append <key> <bytes> [noreply]** - Append data to an existing key.
- **prepend <key> <bytes> [noreply]** - Prepend data to an existing key.
- **cas <key> <flags> <exptime> <bytes> <cas_unique> [noreply]** - Store data with a check and set operation.

#### Get
- **get <key>** - Retrieve data.
- **gets <key>** - Retrieve data with CAS value.

#### Delete
- **delete <key> [noreply]** - Delete data.

#### Increment/Decrement
- **incr <key> <value> [noreply]** - Increment the value of a key.
- **decr <key> <value> [noreply]** - Decrement the value of a key.

#### Touch
- **touch <key> <exptime> [noreply]** - Update the expiration time of a key.

#### Flush
- **flush_all [delay]** - Flush all data after optional delay.
STAT 1:chunk_size 80
STAT 1:chunks_per_page 13107
STAT 1:total_pages 1
STAT 1:total_chunks 13107
STAT 1:used_chunks 13106
STAT 1:free_chunks 1
STAT 1:free_chunks_end 12886
STAT 2:chunk_size 100
STAT 2:chunks_per_page 10485
STAT 2:total_pages 1
STAT 2:total_chunks 10485
STAT 2:used_chunks 10484
STAT 2:free_chunks 1
STAT 2:free_chunks_end 10477
[...]
STAT active_slabs 3
STAT total_malloced 3145436
END

Якщо ви не впевнені, що у вас достатньо пам'яті для вашого екземпляра memcached, завжди слід стежити за лічильниками "видалень", які надає команда "stats". Якщо у вас достатньо пам'яті для екземпляра, лічильник "видалень" повинен бути рівним 0 або принаймні не збільшуватися.

Які ключі використовуються?

Не існує вбудованої функції для прямого визначення поточного набору ключів. Однак ви можете скористатися

stats items

Команда для визначення кількості існуючих ключів: stats items.

stats items
STAT items:1:number 220
STAT items:1:age 83095
STAT items:2:number 7
STAT items:2:age 1405
[...]
END

Це принаймні допомагає побачити, чи використовуються які-небудь ключі. Щоб вивести назви ключів з PHP-скрипту, який вже використовує доступ до memcache, ви можете використовувати PHP-код з 100days.de.

Last updated