1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-kvrocks

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md
kvrocks_logo

CI License GitHub stars


  • Чат на Zulip
  • Почтовый список (как подписаться)Apache Kvrocks — это распределенная база данных типа ключ-значение NoSQL, использующая RocksDB в качестве движка хранения и совместимая с протоколом Redis. Целью Kvrocks является снижение затрат на память и увеличение емкости по сравнению с Redis. Проект был вдохновлен rocksplicator и blackwidow.

Kvrocks имеет следующие основные характеристики:

  • Совместимость с Redis: Пользователи могут обращаться к Apache Kvrocks через любой клиент Redis.
  • Пространство имён: Аналогично Redis SELECT, но оснащённым токеном для каждого пространства имён.
  • Репликация: Асинхронная репликация с использованием бинлогов, аналогичная MySQL.
  • Высокий уровень доступности: Поддерживает Redis sentinel для переключения при отказе мастера или слейва.
  • Кластеризация: Централизированное управление, но доступное через любой клиент кластера Redis.

Кто использует Kvrocks

Вы можете найти пользователей Kvrocks на странице Пользователи.

Пользователям рекомендуется добавить себя на страницу Пользователи. Оставьте комментарий в теме "Кто использует Kvrocks" или отправьте запрос на слияние напрямую для добавления информации о компании или организации инфо и логотипа.## Сборка и запуск Kvrocks

Предварительные требования

# Ubuntu / Debian
sudo apt update
sudo apt install -y git build-essential cmake libtool python3 libssl-dev

# CentOS / RedHat
sudo yum install -y centos-release-scl-rh
sudo yum install -y git devtoolset-11 autoconf automake libtool libstdc++-static python3 openssl-devel
# скачайте и установите cmake через https://cmake.org/download
wget https://github.com/Kitware/CMake/releases/download/v3.26.4/cmake-3.26.4-linux-x86_64.sh -O cmake.sh
sudo bash cmake.sh --skip-license --prefix=/usr
# активируйте gcc и make в devtoolset-11
source /opt/rh/devtoolset-11/enable

# openSUSE / SUSE Linux Enterprise
sudo zypper install -y gcc11 gcc11-c++ make wget git autoconf automake python3 curl cmake

# Arch Linux
sudo pacman -Sy --noconfirm autoconf automake python3 git wget which cmake make gcc

# macOS
brew install git cmake autoconf automake libtool openssl
# если openssl всё ещё не может быть найдена после установки, выполните принудительную связь
brew link --force openssl

Сборка

Это так же просто как:

$ git clone https://github.com/apache/kvrocks.git
$ cd kvrocks
$ ./x.py build # `./x.py build -h` для просмотра других опций; 
                # особенно, `./x.py build --ghproxy` будет использовать ghproxy.com для получения зависимостей.

Для сборки с поддержкой TLS вам потребуются библиотеки OpenSSL (например, libssl-dev на Debian/Ubuntu):

$ ./x.py build -DENABLE_OPENSSL=ON

Для сборки с использованием Lua вместо LuaJIT:

$ ./x.py build -DENABLE_LUAJIT=OFF

Сборка в режиме отладки:

# По умолчанию используется тип сборки RelWithDebInfo со значением оптимизации -O2.
# В режиме отладки можно изменить его на -O0.

$ ./x.py build -DCMAKE_BUILD_TYPE=Debug

Запуск Kvrocks

$ ./build/kvrocks -c kvrocks.conf
```### Запуск Kvrocks с помощью Docker

```shell
$ docker run -it -p 6666:6666 apache/kvrocks --bind 0.0.0.0
# или получить ночную сборку:
$ docker run -it -p 6666:6666 apache/kvrocks:nightly

Дополнительные детали о том, как использовать образы в DockerHub, можно найти на странице Apache Kvrocks на DockerHub.

Подключение к сервису Kvrocks

$ redis-cli -p 6666

127.0.0.1:6666> get a
(nil)

Запуск тестовых случаев

$ ./x.py build --unittest
$ ./x.py test cpp # запустить единичные тесты на C++
$ ./x.py test go # запустить единичные и интеграционные тесты на Go

Поддерживаемые платформы

  • Linux
  • macOS

Пространства имён

Пространство имён используется для изоляции данных между пользователями. В отличие от всех баз данных Redis, доступ к которым осуществляется через requirepass, мы используем один токен на каждое пространство имён. requirepass рассматривается как административный токен, который позволяет получить доступ к командам управления пространствами имён, а также к некоторым командам, таким как config, slaveof, bgsave, и т.д. Дополнительные подробности см. на странице Пространства имён.

# добавление токена
127.0.0.1:6666> namespace add ns1 my_token
OK

# обновление токена
127.0.0.1:6666> namespace set ns1 new_token
OK

# просмотр пространств имён
127.0.0.1:6666> namespace get *
1) "ns1"
2) "new_token"
3) "__namespace"
4) "foobared"

# удаление пространства имён
127.0.0.1:6666> namespace del ns1
OK
```## Кластеры

Kvrocks реализует централизованное решение кластера без прокси, но метод его доступа полностью совместим с клиентом Redis. Вы можете использовать SDK Redis для доступа к кластеру Kvrocks. Дополнительные детали см. на странице [Введение в кластер Kvrocks](https://kvrocks.apache.org/docs/cluster/).

## Документация

Документация находится на официальном сайте [Getting Started](https://kvrocks.apache.org/docs/getting-started/).

* [Поддерживаемые команды](https://kvrocks.apache.org/docs/supported-commands/)
* [Проектирование сложной структуры данных на RocksDB](https://kvrocks.apache.org/community/data-structure-on-rocksdb/)
* [Проектирование репликации](https://kvrocks.apache.org/docs/replication)

## Инструменты

* Для управления кластерами Kvrocks в случае отказа, масштабирования вверх/вниз и других задач используйте [kvrocks-controller](https://github.com/apache/kvrocks-controller)
* Для экспорта метрик монитора Kvrocks используйте [kvrocks_exporter](https://github.com/RocksLabs/kvrocks_exporter)
* Для миграции с Redis на Kvrocks используйте [RedisShake](https://github.com/tair-opensource/RedisShake)
* Для миграции с Kvrocks на Redis используйте `kvrocks2redis`, собранное через `./x.py build`

## Участие

Комьюнити Kvrocks приветствует все формы вклада, и вы можете узнать, как принять участие, на страницах [Комьюнити](https://kvrocks.apache.org/community/) и [Как принимать участие](https://kvrocks.apache.org/community/contributing).

## Лицензия

Apache Kvrocks лицензировано под Apache License Version 2.0. Подробнее см. файл [LICENSE](LICENSE).

## Социальные сети- [Medium](https://kvrocks.medium.com/)
- [X (Twitter)](https://twitter.com/apache_kvrocks)
- [Zhihu](https://www.zhihu.com/people/kvrocks) (на китайском)
- Официальный аккаунт WeChat (на китайском, используйте QR-код для подписки)

![Официальный аккаунт WeChat](assets/wechat_account.jpg)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
C++ и 6 других языков
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-kvrocks.git
git@api.gitlife.ru:oschina-mirror/mirrors-kvrocks.git
oschina-mirror
mirrors-kvrocks
mirrors-kvrocks
unstable