Чому Redis - це in-memory БД?
Redis називають in-memory базою даних, тому що всі дані зберігаються й обробляються прямо в оперативній пам'яті (RAM), а не на диску, як у класичних СУБД.
Основна ідея
Redis працює повністю з оперативної пам'яті, щоб забезпечити:
- миттєвий доступ до даних (час звернення - мікросекунди),
- високу пропускну здатність (мільйони операцій за секунду),
- низьку затримку навіть за великої кількості клієнтів.
Диск використовується лише для резервного копіювання чи персистентності, але не для основної роботи з даними.
Як це влаштовано
- Усі структури даних (String, List, Set, Hash, ZSet та ін.) живуть в оперативній пам'яті.
- Кожна операція (
GET,SET,INCRтощо) виконується напряму над об'єктами в пам'яті. - Щоб дані не втрачалися при перезапуску, Redis може:
- періодично зберігати знімок (RDB snapshot) на диск,
- чи журналювати кожен запис (AOF - Append Only File). Після перезапуску Redis завантажує ці дані назад у пам'ять.
Чому це важливо
- Оперативна пам'ять у десятки тисяч разів швидша за диск.
- Немає повільного I/O - читання й запис виконуються напряму з RAM.
- Це робить Redis ідеальним для кешів, черг, сесій, токенів, лічильників і real-time аналітики.
Але при цьому Redis не "чистий кеш"
Хоча Redis працює в пам'яті, він може бути персистентним:
- За увімкненого RDB чи AOF дані зберігаються й відновлюються після перезапуску.
- Також Redis може працювати в режимі реплікації й кластера, що робить його стійким до збоїв.
Переваги in-memory підходу
- Швидкість: мільйони операцій за секунду.
- Мінімальна затримка (<1 мс).
- Можливість виконувати складні операції прямо в пам'яті (агрегації, сортування, черги).
Обмеження
- Обсяг даних обмежений обсягом RAM.
- При переповненні Redis застосовує eviction-політику - видаляє старі ключі (наприклад,
volatile-lru,allkeys-lruтощо). - Дані втрачаються при збої живлення, якщо не налаштована персистентність.
Таким чином, Redis - це in-memory key-value store, де диск використовується допоміжно, а вся робота з даними відбувається в оперативній пам'яті для забезпечення максимальної швидкості.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.