- Home »

Пример команд Telnet для Memcached
В этой статье разберёмся, как работать с Memcached через Telnet: зачем это нужно, как быстро настроить, какие команды пригодятся в реальной жизни, и почему иногда проще «пощупать» кеш руками, чем ковыряться в логах или писать скрипты. Это не просто гайд для галочки — это набор практических приёмов, которые реально экономят время при отладке и мониторинге. Если ты когда-нибудь ловил баги в распределённом кеше или пытался понять, почему данные не обновляются, — этот пост для тебя. Погнали!
Как это работает?
Memcached — это быстрый, легковесный in-memory кеш, который часто используют для ускорения веб-приложений. Он работает по принципу «ключ-значение» и хранит данные в оперативке, чтобы не гонять каждый раз в базу. Но вот что интересно: Memcached изначально проектировался как максимально простой сервис, и у него нет fancy GUI или встроенного веб-интерфейса. Всё управление — через протокол текстовых команд, которые можно отправлять по Telnet.
Telnet — это такой олдскульный способ подключиться к сервису по TCP и вручную отправлять команды. Для Memcached это не только способ «пощупать» кеш, но и мощный инструмент для диагностики, тестирования и даже автоматизации. Ты буквально можешь зайти внутрь кеша, посмотреть, что там лежит, удалить или добавить ключи, проверить статистику и понять, как работает твой сервис.
- Не нужен никакой дополнительный софт — Telnet есть почти везде.
- Можно быстро проверить, жив ли Memcached и как он себя чувствует.
- Удобно для отладки, особенно когда нет доступа к исходному коду приложения.
Как быстро и просто всё настроить?
Всё, что тебе нужно — это работающий Memcached (обычно на порту 11211) и Telnet-клиент. Если ты на Linux или macOS — Telnet уже есть. На Windows — можно поставить через choco install telnet
или включить через компоненты Windows.
- Убедись, что Memcached запущен. Обычно команда такая:
memcached -d -m 512 -p 11211 -u memcache
Параметры: -d — демонизация, -m — память в МБ, -p — порт, -u — пользователь. - Проверь, что порт открыт:
netstat -plnt | grep 11211
или на Windows:
netstat -ano | findstr 11211
- Подключись через Telnet:
telnet 127.0.0.1 11211
Если всё ок — увидишь пустой экран, можно вводить команды.
Если Memcached на удалённом сервере — не забудь открыть порт в фаерволе, но не делай этого в продакшене без ACL и шифрования! Memcached не умеет в аутентификацию и шифрование из коробки, так что открытый порт — это потенциальная дыра.
Если нужен VPS или выделенный сервер для тестов — вот ссылки: VPS, выделенный сервер.
Примеры, схемы, практические советы
Давай сразу к делу. Вот базовые команды, которые пригодятся в 99% случаев:
# Получить статистику
stats
# Посмотреть версии
version
# Положить значение
set mykey 0 900 5
hello
# Получить значение
get mykey
# Удалить ключ
delete mykey
# Посмотреть все ключи (не всегда работает, зависит от сборки)
stats items
stats cachedump 1 100
# Инкремент/декремент (для числовых значений)
incr mycounter 1
decr mycounter 1
# Очистить весь кеш
flush_all
# Завершить сессию
quit
Пояснения к синтаксису:
- set mykey 0 900 5 — mykey — имя ключа, 0 — флаги (обычно 0), 900 — время жизни в секундах, 5 — длина значения в байтах. После этого жмёшь Enter, вводишь значение (например, hello), снова Enter.
- get mykey — возвращает значение ключа.
- stats — покажет кучу полезной инфы: сколько памяти занято, сколько хитов/промахов, аптайм, и т.д.
- stats items и stats cachedump — позволяют посмотреть, какие ключи вообще есть. Но cachedump работает не всегда и не на всех сборках (например, в некоторых дистрибутивах его отключают из соображений безопасности).
Положительные и отрицательные кейсы
Кейс | Что делаем | Результат | Рекомендации |
---|---|---|---|
Нужно проверить, жив ли Memcached | telnet 127.0.0.1 11211 stats |
Видим аптайм, статистику | Быстрое тестирование без скриптов |
Хотим посмотреть, что лежит в кеше | stats items stats cachedump 1 100 |
Видим список ключей | Работает не всегда, не для больших кешей |
Нужно удалить ключ | delete mykey | Ключ удалён | Осторожно: безвозвратно! |
Хотим очистить весь кеш | flush_all | Весь кеш сброшен | Не делай в продакшене без крайней необходимости |
Пытаемся получить ключ, которого нет | get notfound | END | Ожидаемое поведение |
Полный список команд Telnet для Memcached
# Управляющие команды
stats
stats items
stats slabs
stats settings
stats sizes
stats cachedump [slab_id] [limit]
version
flush_all [delay]
quit
# Операции с данными
set [key] [flags] [exptime] [bytes] [noreply]
add [key] [flags] [exptime] [bytes] [noreply]
replace [key] [flags] [exptime] [bytes] [noreply]
append [key] [flags] [exptime] [bytes] [noreply]
prepend [key] [flags] [exptime] [bytes] [noreply]
cas [key] [flags] [exptime] [bytes] [cas_unique] [noreply]
get [key] [key ...]
gets [key] [key ...]
delete [key] [noreply]
incr [key] [value] [noreply]
decr [key] [value] [noreply]
touch [key] [exptime] [noreply]
Полное описание команд — в официальной документации протокола.
Похожие решения, программы и утилиты
- memcached-tool — консольная утилита для просмотра статистики и дампа ключей (идёт в комплекте с memcached).
- mcstat, mctop — инструменты для мониторинга Memcached в реальном времени.
- libmemcached — набор CLI-утилит (
memccat
,memcstat
,memcdump
), которые работают через бинарный протокол и удобны для скриптов. - telnet — универсальный инструмент, не требует ничего лишнего.
- netcat (nc) — альтернатива telnet, если хочется что-то поскриптовать.
Для автоматизации часто используют echo "stats" | nc 127.0.0.1 11211
— удобно для скриптов и мониторинга.
Статистика, сравнение с другими решениями
Решение | Плюсы | Минусы | Когда использовать |
---|---|---|---|
Telnet | Везде есть, быстро, не требует зависимостей | Нет шифрования, нет аутентификации, не для автоматизации | Ручная отладка, диагностика |
memcached-tool | Удобно для статистики, дампа ключей | Не всегда предустановлен, не все команды | Мониторинг, аудит |
libmemcached CLI | Много команд, поддержка бинарного протокола | Нужно ставить пакет, не всегда есть на сервере | Автоматизация, скрипты |
GUI (phpMemcachedAdmin, etc.) | Красиво, удобно, визуализация | Нужно ставить, безопасность, не всегда нужен | Для больших проектов, когда нужен аудит |
Интересные факты и нестандартные способы использования
- Memcached можно использовать как временное хранилище для очередей, но это не совсем безопасно — нет гарантий доставки.
- Через Telnet можно быстро сбросить кеш после деплоя — просто
flush_all
и всё. - Некоторые админы используют Telnet для health-check’ов: если Memcached отвечает на
stats
— значит, жив. - Можно писать простые bash-скрипты для мониторинга, например, чтобы смотреть, сколько памяти занято:
echo "stats" | nc 127.0.0.1 11211 | grep bytes
- Telnet помогает понять, не «залип» ли кеш: если
get
возвращает старые данные — значит, приложение не обновляет кеш.
Какие новые возможности открываются и чем это поможет в автоматизации и скриптах?
Telnet — это не только ручной инструмент, но и отличный способ автоматизировать рутинные задачи. Например:
- Писать скрипты для health-check’а Memcached (например, через
nc
илиtelnet
в batch-режиме). - Автоматически сбрасывать кеш после деплоя (например, через
flush_all
). - Собирать статистику и отправлять в мониторинг (Prometheus, Zabbix, etc.).
- Проверять, что нужные ключи обновляются после событий в приложении.
Пример простого bash-скрипта для health-check’а:
#!/bin/bash
if echo "stats" | nc 127.0.0.1 11211 | grep -q "STAT"; then
echo "Memcached is alive"
else
echo "Memcached is down"
fi
Можно интегрировать это в любой CI/CD пайплайн или систему мониторинга.
Вывод — заключение и рекомендации
Работа с Memcached через Telnet — это быстрый, надёжный и универсальный способ отладки, диагностики и даже автоматизации. Не нужно ставить лишний софт, не нужно разбираться в сложных интерфейсах — всё просто и понятно. Особенно это ценно, когда нужно быстро проверить, что происходит в кеше, или оперативно сбросить данные.
Рекомендации:
- Используй Telnet для ручной отладки и диагностики, когда нужно быстро проверить состояние Memcached.
- Не открывай порт 11211 наружу без защиты — это дыра в безопасности!
- Для автоматизации используй
nc
или CLI-утилиты, если нужно интегрировать в скрипты. - Если нужен удобный мониторинг — посмотри на memcached-tool или GUI-решения, но для большинства задач Telnet более чем достаточен.
Если хочешь быстро развернуть Memcached для тестов или продакшена — вот ссылки на VPS и выделенные серверы. А если остались вопросы — смотри официальный сайт Memcached и GitHub-репозиторий.
Пробуй, экспериментируй, автоматизируй — и пусть кеш всегда будет быстрым и надёжным!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.