Home » Пример команд Telnet для Memcached
Пример команд Telnet для Memcached

Пример команд 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.

  1. Убедись, что Memcached запущен. Обычно команда такая:
    memcached -d -m 512 -p 11211 -u memcache

    Параметры: -d — демонизация, -m — память в МБ, -p — порт, -u — пользователь.
  2. Проверь, что порт открыт:
    netstat -plnt | grep 11211

    или на Windows:
    netstat -ano | findstr 11211
  3. Подключись через 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 5mykey — имя ключа, 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-репозиторий.

Пробуй, экспериментируй, автоматизируй — и пусть кеш всегда будет быстрым и надёжным!


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

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

Leave a reply

Your email address will not be published. Required fields are marked