Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Які основні типи даних підтримує Redis?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)Redis підтримує набір базових структур даних: String (рядок), List (список), Set (множина), Sorted Set (відсортована множина зі score), Hash (хеш-таблиця), Bitmap, HyperLogLog, Stream і Geo (геодані) - кожна реалізована максимально ефективно для роботи в оперативній пам'яті. **Ключове:** Redis - не просто key-value-сховище, а набір високоефективних структур даних у пам'яті, які можна комбінувати для будь-яких сценаріїв - від кешу до потокової аналітики.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення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-сховище, а **набір високоефективних структур даних у пам'яті**, які можна комбінувати для будь-яких сценаріїв - від кешу до потокової аналітики.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.