🟥 Redis

Типы данных, ключи, TTL, списки, множества, хэши, pub/sub, транзакции и персистентность.

Шпаргалки · Данные · #redis #nosql #cache

Подключение

redis-cli -h localhost -p 6379 [-a пароль]
PING
SELECT 1                # другая БД (0..15)

Ключи и время жизни

SET key value [EX 60]       GET key       DEL key       EXISTS key
EXPIRE key 60               TTL key       PERSIST key
INCR counter                INCRBY counter 5     DECR counter
KEYS user:*                 # только для отладки
SCAN 0 MATCH user:* COUNT 100   # безопасный обход
TYPE key        RENAME a b

Имена ключей структурируйте: user:42:profile.

Типы данных

Тип Команды Для чего
String SET GET MSET MGET APPEND значения, счётчики, кэш
Hash HSET HGET HGETALL HDEL объект с полями
List LPUSH RPUSH LPOP RPOP LRANGE очереди, ленты
Set SADD SREM SMEMBERS SISMEMBER SINTER уникальные значения
Sorted Set ZADD ZRANGE ZREVRANGE ZRANK ZINCRBY рейтинги, приоритеты
Stream XADD XREAD XGROUP XACK журнал событий
Bitmap, HyperLogLog SETBIT PFADD PFCOUNT флаги, оценка уникальных
Geo GEOADD GEOSEARCH координаты

Примеры

HSET user:1 name "Аня" age 30
HGETALL user:1
RPUSH queue "task1" "task2"
LPOP queue
SADD tags "a" "b"
ZADD board 100 "alice" 80 "bob"
ZREVRANGE board 0 9 WITHSCORES

Pub/Sub и транзакции

SUBSCRIBE news          PUBLISH news "hi"
MULTI; INCR a; INCR b; EXEC          # пакет команд

Блокировка: SET lock:x 1 NX EX 10 (создать, только если ключа нет).

Персистентность

  • RDB — снимки по расписанию (быстрый старт).
  • AOF — журнал каждой записи (надёжнее).
  • Без сохранения Redis работает как чистый кэш.

Политики вытеснения

maxmemory 256mb и maxmemory-policy allkeys-lru (или volatile-ttl, noeviction).

Диагностика

INFO, INFO memory, MONITOR (осторожно), SLOWLOG GET, DBSIZE, MEMORY USAGE key.