Гид по технологиям

Установка и настройка RethinkDB на Debian 11

• 5 min read • Базы данных • Обновлено 19 Nov 2025
RethinkDB на Debian 11 — установка и настройка
RethinkDB на Debian 11 — установка и настройка

Краткое описание

RethinkDB — свободная NoSQL база данных с поддержкой «живых» push-обновлений для веб-приложений в реальном времени. Она распределённая и масштабируемая, позволяет клиентам подписываться на изменения вместо постоянного опроса. В одной строке: RethinkDB упрощает построение real-time функциональности.

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

  • Сервер с Debian 11.
  • Пользователь с правами sudo.
  • Базовые навыки работы в терминале (apt, systemctl, nano).

Установка RethinkDB

RethinkDB можно собрать из исходников или установить из бинарных пакетов через официальный репозиторий. Для большинства дистрибутивов проще использовать репозиторий пакетов.

  1. Установите инструменты GnuPG (подписи пакетов):
sudo apt install gnupg2 -y
  1. Добавьте официальный репозиторий RethinkDB и ключ подписи. Команды сохраняют кодовое имя релиза и регистрируют репозиторий в apt:
export CODENAME=`lsb_release -cs`  
echo "deb https://download.rethinkdb.com/repository/debian-$CODENAME $CODENAME main" | sudo tee /etc/apt/sources.list.d/rethinkdb.list  
wget -qO- https://download.rethinkdb.com/repository/raw/pubkey.gpg | sudo apt-key add -
  1. Обновите индексы пакетов:
sudo apt update

Добавленный репозиторий RethinkDB

  1. Установите пакет RethinkDB:
sudo apt install rethinkdb

Подтвердите вводом Y и нажмите ENTER.

Установка rethinkdb через apt

После завершения установки переходите к настройке экземпляра.

Настройка RethinkDB

Файл(ы) конфигурации по умолчанию находятся в каталоге /etc/rethinkdb/. Мы создадим конфигурацию экземпляра и укажем адрес и порт веб-консоли.

  1. Перейдите в каталог конфигурации:
cd /etc/rethinkdb
  1. Скопируйте образец конфигурации в папку экземпляров:
cp default.conf.sample instances.d/rethinkdb1.conf
  1. Откройте копию в редакторе:
sudo nano instances.d/rethinkdb1.conf
  1. Раскомментируйте и отредактируйте параметры. Пример:
http-port=8080  
server-name=rethinkdb1  
directory=/var/lib/rethinkdb/default  
bind=192.168.5.20

Пояснения:

  • http-port — порт веб-консоли.
  • server-name — имя узла в кластере.
  • directory — путь для хранения данных.
  • bind — IP-адрес сервера, на котором слушать соединения. Замените на свой адрес или 0.0.0.0 для прослушивания на всех интерфейсах при тестировании.

Важно: Не выставляйте веб-консоль в открытый интернет без авторизации и защиты (firewall, proxypass с auth). По умолчанию RethinkDB не требует пароля для доступа к консоли.

Сохраните файл и закройте редактор.

Редактирование конфигурации rethinkdb

  1. Перезапустите службу и проверьте статус:
sudo systemctl restart rethinkdb
sudo systemctl status rethinkdb
  1. Проверьте открытые порты:
ss -plntu

По умолчанию RethinkDB использует порты: 8080 для веб-консоли и 28015 для клиентских соединений.

Пример доступа к консоли в браузере (замените IP на ваш): http://192.168.5.20:8080

Запущенный сервис rethinkdb

Веб-консоль rethinkdb

Установка клиентского драйвера RethinkDB (Python)

RethinkDB поддерживает множество языков: JavaScript (Node.js), Python, Java, Go, C и другие. В этом руководстве используется Python.

  1. Установите pip и venv:
sudo apt install python3-pip python3-venv
  1. Создайте виртуальное окружение и активируйте его:
python3 -m venv ./venv  
source venv/bin/activate
  1. Установите Python-драйвер RethinkDB:
pip install rethinkdb

Установка Python client для rethinkdb

Создание базы данных и вставка данных

Внутри активированного venv запустите интерпретатор Python и выполните команды:

  1. Запуск Python:
python
  1. Подключение к серверу и установка подключения как «по умолчанию» (repl):
from rethinkdb import r  
r.connect('192.168.5.20', 28015).repl()
  1. Создайте базу данных test и таблицу tv_shows:
r.db('test').table_create('tv_shows').run()
  1. Вставьте документ в таблицу:
r.table('tv_shows').insert({ 'name': 'Star Trek TNG' }).run()
  1. Прочитайте данные:
cursor = r.table("tv_shows").run()  
for document in cursor:  
    print(document)

Просмотр данных в RethinkDB через Python

Веб-консоль также показывает базу данных и таблицу на вкладке TABLES.

Отображение таблицы в веб-консоли

Отладка и типичные проблемы

  • Сервис не запускается: проверьте журналы systemd — sudo journalctl -u rethinkdb.
  • Порт 8080 недоступен извне: проверьте UFW/iptables и настройки bind в конфигурации.
  • Клиент не подключается: убедитесь, что сервис слушает на 28015 и сетевой маршрут/файрволл пропускают соединения.
  • Разрешения каталога данных: RethinkDB должен иметь права на /var/lib/rethinkdb/default.

Безопасность и соответствие (коротко)

  • Не открывайте веб-консоль в интернет без аутентификации.
  • Ограничьте доступ по IP в файрволе и используйте reverse-proxy с аутентификацией при необходимости.
  • Для обработки персональных данных применяйте шифрование на уровне приложения и минимизируйте хранение PII.

Примечание: RethinkDB сам по себе не предоставляет встроенной роле‑/аутентификации для веб-консоли в базовой сборке; добавьте слой аутентификации на уровне прокси/HTTP.

Когда RethinkDB не подойдет

  • Нужна строгая реляционная консистентность и сложные транзакции (ACID) — лучше выбрать PostgreSQL.
  • Большие аналитические рабочие нагрузки OLAP — предпочтительны колоночные хранилища.
  • Требуется встроенная многоуровневая аутентификация/авторизация на уровне сервера — можно потребовать дополнительных компонентов.

Альтернативы и вариации

  • Для real-time задач: Firebase Realtime Database, Supabase (Postgres + realtime), Socket.io с традиционной базой данных.
  • Если нужен SQL + real-time: PostgreSQL с logical replication или с использованием LISTEN/NOTIFY.

Ментальные модели и эвристики

  • RethinkDB = «излучение изменений»: думайте в терминах подписок (subscribe) и потоков изменений.
  • Используйте RethinkDB для взаимодействия UI ↔️ сервер, где пользователи ожидают мгновенных обновлений.
  • Для долговременного архивирования и сложных запросов комбинируйте RethinkDB с аналитическим хранилищем.

Контрольные списки по ролям

  • Администратор:
    • Убедиться, что сервис запущен: sudo systemctl status rethinkdb.
    • Проверить резервное копирование каталога данных.
    • Ограничить доступ к веб-консоли.
  • Разработчик:
    • Настроить драйвер и окружение venv.
    • Проверить вставку/чтение тестовых записей.
    • Написать тесты на повторное подключение и обработку ошибок.
  • DevOps:
    • Добавить мониторинг (ресурсы, доступность портов).
    • Настроить авто‑перезапуск и паддинг логов.

Критерии приёмки

  • RethinkDB установлен и работает: systemctl active.
  • Веб-консоль доступна на порту 8080 (локально или через защищённый прокси).
  • Клиент Python успешно подключается и может создавать таблицу и вставлять/читать данные.

Тестовые сценарии

  • Запуск и перезапуск сервиса: systemctl restart + проверка log.
  • Сценарий отказа сети: блокировка порта 28015 — клиент кидает корректную ошибку.
  • Проверка прав каталога данных: попытка записи под рутом/не-рутом.

Краткий глоссарий

  • Реaltime: немедленная доставка событий/обновлений клиенту.
  • Push-обновления: модель, при которой сервер отсылает изменения клиенту.
  • Repl(): установка подключения по умолчанию в Python-драйвере RethinkDB.

Заключение

Поздравляем — вы установили и настроили RethinkDB на Debian 11, подключились к нему через Python и выполнили базовые операции: создание БД, таблицы и вставку данных. Дальше рекомендуем:

  • Настроить регулярные бэкапы каталога данных.
  • Ограничить доступ к веб-консоли через firewall или reverse-proxy с аутентификацией.
  • Подготовить тесты и мониторинг в продакшн‑окружении.

Краткое резюме:

  • RethinkDB полезен для приложений с ожиданием быстрых обновлений.
  • Всегда защищайте веб-консоль и клиентские порты.
  • Для продакшна планируйте резервирование и мониторинг.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро