Ответ
Redis — это высокопроизводительная in-memory база данных типа «ключ-значение», которая поддерживает различные структуры данных. Основные команды группируются по типам данных, с которыми они работают:
-
Строки (Strings):
SET key value
/GET key
— Установка и получение строкового значения.INCR key
/DECR key
— Атомарное увеличение/уменьшение числовых значений.
-
Хэши (Hashes):
HSET name field value
/HGET name field
— Работа с полями внутри хэш-таблицы (аналог объекта).HGETALL name
— Получение всех полей и значений хэша.
-
Списки (Lists):
LPUSH key value
/RPOP key
— Добавление элемента в начало списка и извлечение с конца (реализация очереди).
-
Множества (Sets):
SADD key member
/SMEMBERS key
— Работа с неупорядоченными множествами уникальных элементов.
-
Сортированные множества (Sorted Sets):
ZADD key score member
/ZRANGE key start stop
— Работа с множествами, где каждый элемент имеет свой вес (score) для сортировки.
-
Управление ключами:
EXPIRE key seconds
/TTL key
— Установка времени жизни ключа и проверка оставшегося времени.DEL key
— Удаление ключа.
-
Pub/Sub:
PUBLISH channel message
/SUBSCRIBE channel
— Реализация механизма публикации-подписки для обмена сообщениями.
Пример использования в Go с библиотекой go-redis
:
client := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
})
// Установка значения с временем жизни 1 час
err := client.Set(ctx, "user:1", "some-data", time.Hour).Err()
if err != nil {
log.Fatal(err)
}
// Получение значения
val, err := client.Get(ctx, "user:1").Result()
if err == redis.Nil {
fmt.Println("Ключ не найден")
} else if err != nil {
log.Fatal(err)
} else {
fmt.Println("user:1", val)
}
Выбор правильной структуры данных в Redis — ключ к эффективному решению задачи.