Skip to main content

Які основні типи даних підтримує Redis?

Redis підтримує набір базових структур даних, кожна з яких реалізована максимально ефективно для зберігання й маніпулювання в оперативній пам'яті. Ці типи - основа всієї роботи Redis.

1. String (рядок)

Найпростіший і базовий тип даних - ключ-значення. Може зберігати текст, числа, JSON, бінарні дані, зображення тощо.

Приклад:

bash
SET user:name "Alice" GET user:name

Можна виконувати арифметику:

bash
INCR counter DECRBY counter 5

Особливість: рядок у Redis може бути до 512 МБ.

2. List (список)

Впорядкована колекція рядків, як черга чи стек. Додавання й видалення елементів можливе з обох боків.

Приклад:

bash
LPUSH queue task1 RPUSH queue task2 LPOP queue

Застосування: черги задач, стрічки подій, чати.

3. Set (множина)

Невпорядкована множина унікальних елементів. Підтримує операції теорії множин: перетин, об'єднання, різницю.

Приклад:

bash
SADD tags "redis" "database" "cache" SMEMBERS tags SISMEMBER tags "redis"

Застосування: зберігання унікальних ID, підписників, тегів.

4. Sorted Set (відсортована множина)

Як Set, але кожен елемент має оцінку (score) - число, за яким елементи сортуються.

Приклад:

bash
ZADD leaderboard 1500 "Alice" 1700 "Bob" ZRANGE leaderboard 0 -1 WITHSCORES

Застосування: рейтинги, лідерборди, пріоритизація, топи.

5. Hash (хеш-таблиця)

Зберігає набір пар поле-значення під одним ключем. Нагадує міні-об'єкт чи JSON.

Приклад:

bash
HSET user:100 name "Alice" age 25 HGET user:100 name HGETALL user:100

Застосування: профілі користувачів, конфігурації, метадані.

6. Bitmap (бітова карта)

Дозволяє зберігати й маніпулювати окремими бітами рядка.

Приклад:

bash
SETBIT users_online 100 1 GETBIT users_online 100 BITCOUNT users_online

Застосування: трекінг активності, онлайн-статистика, булеві прапорці.

7. HyperLogLog

Структура для наближеного підрахунку унікальних елементів з мінімальним споживанням пам'яті (~12 КБ).

Приклад:

bash
PFADD visitors "user1" "user2" "user3" PFCOUNT visitors

Застосування: лічильник унікальних користувачів, IP, подій.

8. Stream

Лог структурованих подій (як Kafka). Підтримує ID повідомлень, групи споживачів, підтвердження.

Приклад:

bash
XADD events * user "Alice" action "login" XREADGROUP GROUP g1 c1 COUNT 1 STREAMS events >

Застосування: черги задач, події, мікросервіси, логування.

9. Geo (геодані)

Дозволяє зберігати координати й виконувати гео-запити (пошук найближчих точок, відстані).

Приклад:

bash
GEOADD shops 30.5 50.4 "ShopA" GEORADIUS shops 30.5 50.4 10 km

Застосування: карти, логістика, трекінг, пошук "поруч зі мною".

Підсумок

ТипПризначенняПриклад використання
StringРядки, числа, JSONКеш, токени, лічильники
ListВпорядковані колекціїЧерги, стрічки
SetУнікальні елементиПідписки, теги
Sorted SetЕлементи з пріоритетамиРейтинги, топи
HashОб'єкти, словникиПрофілі, конфіги
BitmapПобітові прапорціОнлайн-активність
HyperLogLogПідрахунок унікальнихАналітика
StreamПотік подійЧерги, логування
GeoГеокоординатиПошук за відстанню

Redis - не просто key-value-сховище, а набір високоефективних структур даних у пам'яті, які можна комбінувати для будь-яких сценаріїв - від кешу до потокової аналітики.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.