NoSQL
NoSQL (Not only SQL) — класс систем управления данными, не требующих фиксированной реляционной схемы и часто оптимизированных под горизонтальное масштабирование, гибкость схемы и высокую доступность. В отличие от традиционных СУБД, NoSQL-решения различаются по моделям данных: документные, ключ-значение, колоночные и графовые. Ниже приведён перечень наиболее значимых реализаций с практической информацией по установке и использованию.
1. MongoDB
- Тип: Документная (BSON/JSON).
- Особенности: Гибкая схема, агрегационный конвейер, поддержка индексов, репликации и шардинга, встроенная поддержка геопространственных запросов.
- Сценарии: Веб-приложения, содержимое с переменной структурой, каталоги, IoT.
- Установка:
- Linux (Debian/Ubuntu):
wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb.gpg
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
sudo apt update && sudo apt install mongodb-org - macOS:
brew install mongodb-community - Windows: установщик — MongoDB Download Center
- Docker:
docker run --name mongodb -d -p 27017:27017 mongo:7.0
- Linux (Debian/Ubuntu):
- Сайт: https://www.mongodb.com
2. Redis
- Тип: Ключ-значение (in-memory, с опциональной персистентностью).
- Особенности: Поддержка строк, списков, множеств, хэшей, сортированных множеств; публикация/подписка; Lua-скрипты; TTL; репликация и кластеризация.
- Сценарии: Кэширование, сессии, очереди, рейт-лимитинг, leaderboard’ы.
- Установка:
- Linux (Ubuntu/Debian):
sudo apt install redis-server - macOS:
brew install redis - Windows: через WSL или Docker
- Docker:
docker run --name redis -d -p 6379:6379 redis:7.2
- Linux (Ubuntu/Debian):
- Сайт: https://redis.io
3. Apache Cassandra
- Тип: Колоночная (wide-column store).
- Особенности: Распределённая архитектура без единой точки отказа, eventual consistency, CQL (Cassandra Query Language), линейная масштабируемость.
- Сценарии: Логирование, телеметрия, системы с высокой записью (write-heavy), IoT.
- Установка:
- Linux/macOS: скачать архив с официального сайта или через
cassandraв Homebrew - Docker:
docker run --name cassandra -d -p 9042:9042 cassandra:4.1
- Linux/macOS: скачать архив с официального сайта или через
- Сайт: https://cassandra.apache.org
4. Couchbase
- Тип: Документная + ключ-значение.
- Особенности: Поддержка SQL++ (N1QL), встроенная аналитика, полнотекстовый поиск, репликация, enterprise-функции (XDCR, RBAC).
- Сценарии: Мобильные и веб-приложения, кэширование, микросервисы.
- Установка:
- Linux/macOS/Windows: установщик с официального сайта
- Docker:
docker run -d --name couchbase -p 8091-8097:8091-8097 -p 11210:11210 couchbase:7.2
- Сайт: https://www.couchbase.com
5. CouchDB
- Тип: Документная (JSON).
- Особенности: HTTP API, репликация «peer-to-peer», offline-first, MVCC, визуальный интерфейс Fauxton.
- Сценарии: Мобильные приложения с offline-режимом, децентрализованные системы.
- Установка:
- Linux:
sudo apt install couchdb(Ubuntu/Debian) - macOS:
brew install couchdb - Docker:
docker run -d --name couchdb -p 5984:5984 -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password couchdb:3.3
- Linux:
- Сайт: https://couchdb.apache.org
6. Neo4j
- Тип: Графовая.
- Особенности: Язык запросов Cypher, ACID-транзакции, нативное хранение связей, поддержка RDF/SPARQL через расширения, визуализация в браузере.
- Сценарии: Социальные графы, рекомендательные системы, фрод-детекция, знаниевые базы.
- Установка:
- Linux/macOS/Windows: Neo4j Desktop или архив с ядром
- Docker:
docker run -d --name neo4j -p 7474:7474 -p 7687:7687 -e NEO4J_AUTH=neo4j/password neo4j:5.17
- Сайт: https://neo4j.com
7. ArangoDB
- Тип: Мульти-модельная (документная, графовая, ключ-значение).
- Особенности: Единый язык запросов AQL, JOIN’ы между коллекциями, встроенная поддержка графов и full-text search.
- Сценарии: Сложные доменные модели с гибридными связями.
- Установка:
- Linux/macOS: установщик с официального сайта
- Docker:
docker run -d --name arangodb -p 8529:8529 -e ARANGO_ROOT_PASSWORD=password arangodb:3.11
- Сайт: https://www.arangodb.com
8. DynamoDB (AWS)
- Тип: Ключ-значение + документная (managed service).
- Особенности: Полностью управляемый сервис AWS, автоматическое масштабирование, поддержка потоков (Streams), TTL, глобальные таблицы.
- Сценарии: Serverless-приложения, мобильные бэкенды, высоконагруженные сервисы в облаке.
- Установка:
- Только через AWS. Для эмуляции локально:
docker run -d -p 8000:8000 amazon/dynamodb-local - CLI:
aws dynamodb create-table ...(требуется AWS CLI и учётная запись)
- Только через AWS. Для эмуляции локально:
- Сайт: https://aws.amazon.com/dynamodb/
9. RavenDB
- Тип: Документная (JSON), ACID-совместимая.
- Особенности: Встроенная репликация, full-text search, LINQ-запросы (.NET), распределённая архитектура, UI-консоль.
- Сценарии: .NET-приложения, enterprise-системы с требованием транзакционной целостности.
- Установка:
- Windows/Linux/macOS: официальный установщик
- Docker:
docker run -d --name ravendb -p 8080:8080 -p 38888:38888 ravendb/ravendb:5.4
- Сайт: https://ravendb.net
10. ScyllaDB
- Тип: Колоночная (совместима с Apache Cassandra API).
- Особенности: Написана на C++ с использованием Seastar, низкая латентность, высокая пропускная способность, совместимость с CQL и инструментами Cassandra.
- Сценарии: High-throughput приложения, замена Cassandra при требовании производительности.
- Установка:
- Linux: пакеты для Ubuntu/Debian/RHEL — инструкция
- Docker:
docker run --name scylla -d -p 9042:9042 scylladb/scylla:5.4
- Сайт: https://www.scylladb.com
11. FoundationDB
- Тип: Ключ-значение (упорядоченное), ACID.
- Особенности: Строгая согласованность, поддержка слоёв (например, документного через Record Layer), разработана Apple.
- Сценарии: Финтех, системы с требованием строгих транзакций поверх простого API.
- Установка:
- Linux/macOS: GitHub Releases
- Docker:
docker run -d --name fdb -p 4500:4500 foundationdb/foundationdb:7.1
- Сайт: https://www.foundationdb.org
12. HBase (Apache)
- Тип: Колоночная, поверх HDFS.
- Особенности: Часть экосистемы Hadoop, сильная масштабируемость, интеграция с Apache Spark, Phoenix (SQL-интерфейс).
- Сценарии: Big Data, аналитика, долговременное хранение логов.
- Установка:
- Требует Hadoop. Упрощённый запуск через Docker:
docker run -d --name hbase harisekhon/hbase:2.4
- Требует Hadoop. Упрощённый запуск через Docker:
- Сайт: https://hbase.apache.org