Вики / Службы и systemd
Redis
Хранилище ключ-значение в памяти — redis-cli, конфиг, персистентность, память.
Redis — быстрое хранилище ключ-значение в оперативной памяти (кэш, очереди,
сессии, брокер для Channels/Celery). Служба redis-server под systemd,
порт 6379, конфиг /etc/redis/redis.conf.
systemctl status redis-server
redis-cli ping # → PONG, если жив
ss -tlnp | grep 6379 # слушает ли (см. ss)
redis-cli # интерактивная консоль
redis-cli -a СЕКРЕТ # с паролем (или AUTH внутри)
redis-cli info server # версия, аптайм
redis-cli info memory # потребление памяти
redis-cli info clients # число подключений
redis-cli dbsize # число ключей
redis-cli --scan --pattern 'x:*' # БЕЗОПАСНЫЙ обход ключей (не блокирует)
redis-cli get k ; redis-cli set k v ex 60 ; redis-cli ttl k ; redis-cli del k
redis-cli --bigkeys # найти крупные ключи (что ест память)
redis-cli monitor # поток ВСЕХ команд (отладка; даёт нагрузку!)
redis-cli slowlog get 10 # 10 последних медленных команд
⚠️
KEYS *блокирует сервер на больших БД — всегда--scan.FLUSHALL/FLUSHDBстирают данные без подтверждения.
Ключевое в /etc/redis/redis.conf:
bind 127.0.0.1 # слушать только локально (безопасно по умолчанию)
requirepass СЕКРЕТ # пароль (ОБЯЗАТЕЛЬНО, если открыт по сети)
maxmemory 256mb
maxmemory-policy allkeys-lru # что выкидывать при заполнении (для кэша)
appendonly yes # персистентность AOF (durable)
save 900 1 # RDB-снапшот: если ≥1 изменение за 900с
- RDB — периодические снапшоты (компактно, можно потерять последние секунды).
- AOF (
appendonly yes) — журнал операций (durable, восстановление точнее).
Менять на лету без рестарта: redis-cli config set maxmemory 512mb + config rewrite.
После правки файла — sudo systemctl restart redis-server.
Could not connect to Redis (6379)
Служба не запущена (systemctl status redis-server) или слушает только 127.0.0.1,
а клиент идёт по сети. Для сети — поправь bind + обязательно requirepass
(открытый Redis = мгновенный взлом).
OOM / выросло потребление памяти
redis-cli info memory, --bigkeys. Для кэша задай maxmemory + maxmemory-policy,
иначе Redis съест всю RAM и его убьёт OOM-killer (см. memory-swap).
Данные пропали после рестарта
По умолчанию данные только в памяти. Включи персистентность (appendonly yes и/или
save), если данные важны.
Тормозит / высокая задержка
redis-cli --latency, slowlog get. Частые причины: KEYS/SMEMBERS по огромным
структурам, swap (Redis НЕ должен свопиться — см. memory-swap), фоновый
RDB-fork при нехватке памяти.
NOAUTH Authentication required
Задан requirepass — подключайся redis-cli -a СЕКРЕТ или AUTH первой командой.
redis-cli ping # PONG?
redis-cli info memory ; redis-cli --bigkeys # память / крупные ключи
redis-cli --scan --pattern 'x:*' # обход ключей (не KEYS!)
redis-cli slowlog get 10 ; redis-cli --latency # медленные/задержка
redis-cli config set k v ; redis-cli config rewrite # на лету
# redis.conf: bind 127.0.0.1 + requirepass + maxmemory + maxmemory-policy + appendonly
См. также
- ss (сокеты и порты) — Сеть
- systemctl — Службы и systemd