Repolode
Snapchat

Snapchat/KeyDB

Многопоточная Redis-совместимая база данных в памяти — прямая замена Redis с репликацией active-active и опциональным хранением данных во FLASH.

Open source альтернатива:Redis

Звёзды
12,499
Форки
680
Открытые issues
295
Последний коммит
15 дней назад

Что это?

KeyDB — высокопроизводительный форк Redis, ориентированный на многопоточность, эффективное использование памяти и пропускную способность. Он полностью совместим с протоколом Redis, модулями и скриптами, поэтому существующие инсталляции Redis можно перевести на него без изменений клиентских приложений и кода.

Помимо возможностей Redis, KeyDB поддерживает репликацию active-active: несколько экземпляров могут одновременно принимать запросы на чтение и запись, оставаясь синхронизированными. Это упрощает балансировку нагрузки на уровне TCP и переключение на резервный узел. Также доступны хранение данных во FLASH на локальных SSD, срок действия отдельных ключей и опциональные выгрузка и загрузка данных из S3. Благодаря архитектуре MVCC такие команды, как KEYS и SCAN, выполняются без блокировки базы данных.

KeyDB работает на Linux, и сборка тестируется именно на этой платформе. Многопоточность настраивается такими параметрами, как server-threads и параметры балансировки клиентов; в сборках TLS включён по умолчанию.

Ключевые возможности

  • 01Многопоточная обработка запросов с поддержкой протокола Redis, модулей и скриптов.
  • 02Репликация active-active, позволяющая нескольким экземплярам принимать запросы на чтение и запись.
  • 03Хранение данных во FLASH на локальных SSD (экспериментальная функция).
  • 04Срок действия отдельных ключей и неблокирующее выполнение KEYS и SCAN на основе MVCC.
  • 05Опциональные выгрузка данных в AWS S3 и загрузка из него.

Сценарии использования

  • Замена существующей инсталляции Redis для увеличения пропускной способности на том же оборудовании.
  • Развёртывание слоя кэширования, в котором несколько экземпляров совместно обрабатывают запросы на чтение и запись.
  • Сокращение числа серверов за счёт увеличения нагрузки на каждый узел.

Быстрый старт

  1. 1

    Установите зависимости для сборки в Debian/Ubuntu

    sudo apt install build-essential nasm autotools-dev autoconf libjemalloc-dev tcl tcl-dev uuid-dev libcurl4-openssl-dev libbz2-dev libzstd-dev liblz4-dev libsnappy-dev libssl-dev
  2. 2

    Инициализируйте и обновите зависимости подмодулей

    git submodule init && git submodule update
  3. 3

    Скомпилируйте KeyDB

    make
  4. 4

    Запустите сервер с конфигурацией по умолчанию из каталога src

    ./keydb-server

Что важно знать

  • Сборка и тестирование выполняются только в Linux, поскольку проект зависит от Linux SO_REUSEPORT.
  • Хранилище FLASH — экспериментальная функция (бета-версия), поэтому используйте его с осторожностью.
  • Платная поддержка не предоставляется; помощь можно получить через каналы сообщества.

В подборках

Темы

Частые вопросы

Что такое KeyDB?
Многопоточная Redis-совместимая база данных в памяти — прямая замена Redis с репликацией active-active и опциональным хранением данных во FLASH. KeyDB — высокопроизводительный форк Redis, ориентированный на многопоточность, эффективное использование памяти и пропускную способность. Он полностью совместим с протоколом Redis, модулями и скриптами, поэтому существующие инсталляции Redis можно перевести на него без изменений клиентских приложений и кода.
KeyDB можно использовать бесплатно? Какая у него лицензия?
KeyDB распространяется с открытым исходным кодом под лицензией BSD-3-Clause. Перед использованием в коммерческих продуктах проверьте условия лицензии.
KeyDB всё ещё поддерживается?
Активно поддерживается. Последний коммит в KeyDB — 22 окт. 2026 г..
Для чего можно использовать KeyDB?
Замена существующей инсталляции Redis для увеличения пропускной способности на том же оборудовании. Развёртывание слоя кэширования, в котором несколько экземпляров совместно обрабатывают запросы на чтение и запись. Сокращение числа серверов за счёт увеличения нагрузки на каждый узел.
Как установить KeyDB?
Установите зависимости для сборки в Debian/Ubuntu: sudo apt install build-essential nasm autotools-dev autoconf libjemalloc-dev tcl tcl-dev uuid-dev libcurl4-openssl-dev libbz2-dev libzstd-dev liblz4-dev libsnappy-dev libssl-dev Инициализируйте и обновите зависимости подмодулей: git submodule init && git submodule update Скомпилируйте KeyDB: make Запустите сервер с конфигурацией по умолчанию из каталога src: ./keydb-server
Где скачать KeyDB?
Исходный код и инструкции по установке — на GitHub: https://github.com/Snapchat/KeyDB

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты