Ответ
Redis — это in-memory key-value хранилище, работающее по принципу однопоточной event-loop модели. Основные особенности:
-
Хранение данных: все данные хранятся в оперативной памяти, но поддерживается персистентность через RDB (снимки) и AOF (лог операций).
-
Типы данных: поддерживает не только строки, но и сложные структуры:
- Lists (двусторонние очереди)
- Sets/Hashsets
- Sorted Sets
- Bitmaps
// Пример работы с Redis в Go (redigo)
conn, _ := redis.Dial("tcp", "localhost:6379")
defer conn.Close()
// SET/GET
conn.Do("SET", "key", "value")
val, _ := redis.String(conn.Do("GET", "key"))
-
Производительность: достигается за счет:
- Однопоточной модели (нет contention)
- Оптимизированных структур данных
- Протокола RESP (бинарный + текстовый)
- Доп. возможности: Pub/Sub, Lua-скрипты, транзакции (MULTI/EXEC), TTL для ключей.