Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Що таке Bitmap?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)Bitmap у Redis - спосіб зберігати й обробляти послідовності бітів (0 і 1) поверх звичайного рядка (String): фактично це не окремий тип даних, а набір бітових операцій над Redis String, що дозволяє використовувати її як бітову карту довжиною до 512 МБ (до 4 мільярдів бітів). **Ключове:** ключові команди - `SETBIT`/`GETBIT` для окремого біта, `BITCOUNT` для підрахунку одиниць, `BITOP` для побітових AND/OR/XOR/NOT між кількома bitmap'ами; типове застосування - трекінг активності користувачів за днями чи булеві прапорці.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення**Bitmap** у Redis - це спосіб зберігати й обробляти **послідовності бітів (0 і 1)** поверх звичайного рядка (String). Фактично, це не окремий тип даних, а **набір бітових операцій над Redis String**, що дозволяє використовувати її як бітову карту. ### Основна ідея Redis String можна розглядати як масив бітів довжиною до 512 МБ → це **до 4 мільярдів бітів** (4×10⁹ булевих значень). Кожен біт можна встановити (`1`) чи скинути (`0`), а потім читати чи підраховувати їхню кількість. ### Приклад ```bash SETBIT userlogins 5 1 GETBIT userlogins 5 ``` Результат: ```javascript 1 ``` П'ятий біт встановлений у `1`. ### Основні команди | Команда | Опис | |---|---| | `SETBIT key offset value` | встановити значення біта (0 чи 1) | | `GETBIT key offset` | отримати значення біта | | `BITCOUNT key [start end]` | підрахувати кількість встановлених бітів (1) | | `BITOP operation destkey key [key ...]` | побітові операції (AND, OR, XOR, NOT) | | `BITPOS key bit [start end]` | знайти перший біт із вказаним значенням | ### Приклад підрахунку ```bash SETBIT active_users 1 1 SETBIT active_users 5 1 SETBIT active_users 7 1 BITCOUNT active_users ``` Результат: ```javascript 3 ``` Три біти встановлені у `1`. ### Побітові операції ```bash BITOP AND result key1 key2 BITOP OR result key1 key2 BITOP XOR result key1 key2 BITOP NOT result key ``` Дозволяють робити перетини чи об'єднання кількох bitmap'ів. ### Внутрішня будова Bitmap - це звичайний Redis String, де кожен байт складається з 8 бітів. Redis не виділяє пам'ять заздалегідь: якщо встановити біт з великим зміщенням, решта заповнюється нулями. ### Застосування - Відстеження активності користувачів за днями (1 - активний, 0 - ні). - Підрахунок унікальних відвідувань. - Зберігання булевих прапорців (виконав/не виконав дію). - Прості системи аналітики й статистики. - Компресія бінарних даних чи ознак. ### Приклад відстеження активності ```bash SETBIT logins:2025-10-21 12345 1 GETBIT logins:2025-10-21 12345 BITCOUNT logins:2025-10-21 ``` Користувач з ID 12345 позначений як активний за день, і можна миттєво дізнатися загальну кількість активних.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.