🟥 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.