Ответ
Redis — это in-memory хранилище типа «ключ-значение» (key-value store), которое также часто называют структурным сервером данных (data structure server).
Ключевые характеристики:
- Модель данных: Простые пары ключ-значение, где ключ — строка, а значение может быть одним из сложных типов данных: строкой (
String), списком (List), множеством (Set), упорядоченным множеством (Sorted Set), хешем (Hash) или потоком (Stream). - Хранение: Данные в основном хранятся в оперативной памяти (RAM), что обеспечивает очень высокую производительность (операции за микросекунды). Для persistence поддерживается периодический снимок (RDB) и лог операций (AOF).
- Свойства: Однопоточная модель выполнения команд, поддержка транзакций, Pub/Sub, Lua-скрипты, репликация, кластеризация.
Пример использования (Java с Jedis):
import redis.clients.jedis.Jedis;
public class RedisExample {
public static void main(String[] args) {
// Подключение к локальному Redis
try (Jedis jedis = new Jedis("localhost", 6379)) {
// Простая операция "ключ-значение"
jedis.set("user:1000:name", "Alice");
String userName = jedis.get("user:1000:name");
System.out.println(userName); // Alice
// Работа со структурой Hash
jedis.hset("user:1000", "email", "alice@example.com");
jedis.hset("user:1000", "age", "30");
String email = jedis.hget("user:1000", "email");
System.out.println(email); // alice@example.com
}
}
}
Типичные сценарии: Кэширование, управление сессиями, очереди сообщений (используя List), leaderboards (используя Sorted Set), Pub/Sub для реального времени.