Этот README является быстрым кратким руководством для быстрого старта. Более подробная документация доступна на redis.io.
Для разработчиков, создающих реал-тайм приложения, основанные на данных, Redis является предпочтительным, самым быстрым и функционально богатым кэшем, сервером структур данных и движком для запросов документов и векторов.Redis охватывает широкий спектр сценариев использования в различных отраслях и проектах, выступая в роли:
Кэша, поддерживающего несколько политик вытеснения ключей, истечение срока действия ключей и полей хэшей
Распределенного хранилища сессий, поддерживающего несколько вариантов моделирования данных сессий (строка, JSON, хэш).
Сервера структур данных: низкоуровневые структуры данных (строка, JSON, список, хэш, множество, упорядоченное множество, битовая карта, битовое поле и другие — см. полный список ниже) с высокоуровневыми семантиками (счетчик, стек, очередь, приоритетная очередь, ограничитель скорости, рейтинг, ...) и поддержкой транзакций и скриптов.
NoSQL хранилища данных: ключ-значение, документы, временные ряды.
Вторичного индекса и движка поиска и запросов: с помощью Redis Query Engine пользователи могут определять индексы для хэш- и JSON-документов и использовать богатый язык запросов для векторного поиска, полнотекстового поиска, геопространственных запросов, ранжирования и агрегации.
Распределенного хранилища событий, платформы для обработки потоков и брокера сообщений: очередь (список), приоритетная очередь (упорядоченное множество), дедупликация событий (множество), потоки и публикация/подписка, с возможностями вероятностной обработки потоков.- Хранилища векторов, интегрированного с приложениями и экосистемами генеративного ИИ (например, LangGraph, mem0), предоставляющего краткосрочную память (чекпоинтеры), долгосрочную память (хранилище), кэширование ответов LLM (семантический кэш LLM) и извлечение контекста (приложения RAG).
Реал-тайм аналитика, включая персонализацию, рекомендации, обнаружение мошенничества и аномалий, оценку рисков.Redis можно доверять (он надежен и имеет четко определенное поведение), он поставляется с долгосрочным обязательством (мы продолжаем поддерживать Redis, избегаем введения разрывных изменений и поддерживаем его инновационность и конкурентоспособность). Redis быстр и имеет небольшой объем использования памяти (с правильными компромиссами), легко понимается, изучается и используется, и легко внедряется в широкий спектр сред разработки и языков программирования. Если вы хотите узнать больше, вот список отправных точек:
Введение в типы данных Redis - https://redis.io/docs/latest/develop/data-types/
Полный список команд Redis - https://redis.io/commands
Redis для AI - https://redis.io/docs/latest/develop/ai/
и многое другое - https://redis.io/documentation
Redis Community Edition (Redis CE) был переименован в Redis Open Source с выпуском версии v8.0.
Redis Ltd. также предлагает Redis Software, самоуправляемое программное обеспечение с дополнительными возможностями соответствия, надежности и устойчивости для масштабирования в корпоративной среде, и Redis Cloud, полностью управляемую службу, интегрированную с Google Cloud, Azure и AWS для приложений, готовых к производственному использованию.
Читайте больше о различиях между Redis Open Source и Redis здесь.
Если вы предпочитаете собирать Redis из исходного кода — см. инструкции ниже.
redis-cli
— это командная строка Redis. Она доступна в составе всех бинарных дистрибутивов и при сборке Redis из исходного кода.
См. https://redis.io/docs/latest/develop/tools/cli/
Вы можете запустить экземпляр redis-server, а затем, в другом терминале, попробуйте следующее:
% cd src
% ./redis-cli
redis> ping
PONG
redis> set foo bar
OK
redis> get foo
"bar"
redis> incr mycounter
(integer) 1
redis> incr mycounter
(integer) 2
redis>
Для более визуального и удобного пользовательского опыта используйте Redis Insight — инструмент, который позволяет вам исследовать данные, проектировать, разрабатывать и оптимизировать ваши приложения, а также служит платформой для обучения и адаптации в Redis. Redis Insight интегрирует Redis Copilot, помощника на естественном языке, который улучшает опыт работы с данными и командами. См. https://redis.io/docs/latest/develop/tools/insight/ и https://github.com/RedisInsight/RedisInsight.
Redis предоставляет различные типы данных, процессоры и возможности для поддержки широкого спектра сценариев использования:
Строка
JSON (*)
Хэш
Множество
Отсортированное множество
Геопространственный индекс
Битовая карта
Bloom filter (*)
Фильтр Cuckoo (*)
Top-k (*)
Count-Min Sketch (*)
Pub/Sub
Поток
Транзакции
Элементы, отмеченные (*), требуют сборки с BUILD_WITH_MODULES=yes
.
Тестировано с следующими Docker-образами:
Установка необходимых зависимостей
Обновите списки пакетов и установите необходимые инструменты и библиотеки разработки:
apt-get update
apt-get install -y sudo
sudo apt-get install -y --no-install-recommends ca-certificates wget dpkg-dev gcc g++ libc6-dev libssl-dev make git python3 python3-pip python3-venv python3-dev unzip rsync clang automake autoconf gcc-10 g++-10 libtool
Использование GCC 10 в качестве основного компилятора
Обновите основной компилятор системы до GCC 10:``` sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10
3. Установка CMake
Установите CMake с помощью `pip3` и создайте символическую ссылку для доступа к нему по всей системе:
pip3 install cmake==3.31.6 sudo ln -sf /usr/local/bin/cmake /usr/bin/cmake cmake --version
Примечание: Версия CMake 3.31.6 является последней поддерживаемой версией. Более новые версии не могут быть использованы.
4. Скачайте исходный код Redis
Скачайте архив с исходным кодом определенной версии Redis с GitHub.
Замените `<version>` на версию Redis, например: `8.0.0`.
cd /usr/src wget -O redis-.tar.gz https://github.com/redis/redis/archive/refs/tags/.tar.gz
5. Распакуйте архив с исходным кодом
Создайте директорию для исходного кода и распакуйте содержимое в нее:
cd /usr/src tar xvf redis-.tar.gz rm redis-.tar.gz
6. Соберите Redis
Установите необходимые переменные окружения и скомпилируйте Redis:
cd /usr/src/redis- export BUILD_TLS=yes BUILD_WITH_MODULES=yes INSTALL_RUST_TOOLCHAIN=yes DISABLE_WERRORS=yes make -j "$(nproc)" all
7. Запустите Redis
cd /usr/src/redis- ./src/redis-server redis-full.conf
### Сборка и запуск Redis со всеми структурами данных - Ubuntu 22.04 (Jammy) / 24.04 (Noble)
Тестировано с использованием следующего Docker-образа:
- ubuntu:22.04
- ubuntu:24.04
1. Установите необходимые зависимости
Обновите списки пакетов и установите необходимые инструменты и библиотеки для разработки:
apt-get update apt-get install -y sudo sudo apt-get install -y --no-install-recommends ca-certificates wget dpkg-dev gcc g++ libc6-dev libssl-dev make git cmake python3 python3-pip python3-venv python3-dev unzip rsync clang automake autoconf libtool
2. Скачивание исходного кода Redis
Скачайте архив с исходным кодом определенной версии Redis с GitHub.
Замените `<version>` на версию Redis, например: `8.0.0`.
cd /usr/src wget -O redis-.tar.gz https://github.com/redis/redis/archive/refs/tags/.tar.gz
3. Распаковка архива с исходным кодом
Создайте директорию для исходного кода и распакуйте содержимое в нее:
cd /usr/src tar xvf redis-.tar.gz rm redis-.tar.gz
4. Сборка Redis
Установите необходимые переменные окружения и соберите Redis:
cd /usr/src/redis- export BUILD_TLS=yes BUILD_WITH_MODULES=yes INSTALL_RUST_TOOLCHAIN=yes DISABLE_WERRORS=yes make -j "$(nproc)" all
5. Запуск Redis
cd /usr/src/redis- ./src/redis-server redis-full.conf
Тестировано с следующими Docker-образами:
- debian:bullseye
- debian:bullseye-slim
- debian:bookworm
- debian:bookworm-slim
1. Установка необходимых зависимостей
Обновите списки пакетов и установите необходимые инструменты и библиотеки разработки:
apt-get update apt-get install -y sudo sudo apt-get install -y --no-install-recommends ca-certificates wget dpkg-dev gcc g++ libc6-dev libssl-dev make git cmake python3 python3-pip python3-venv python3-dev unzip rsync clang automake autoconf libtool
2. Скачивание исходного кода Redis
Скачайте архив с исходным кодом определенной версии Redis с GitHub. Замените `<version>` на версию Redis, например: `8.0.0`.
cd /usr/src wget -O redis-.tar.gz https://github.com/redis/redis/archive/refs/tags/.tar.gz
3. Распаковка архива с исходным кодом
Создайте директорию для исходного кода и распакуйте содержимое в нее:
cd /usr/src tar xvf redis-.tar.gz rm redis-.tar.gz
4. Сборка Redis
Установите необходимые переменные окружения и соберите Redis:
cd /usr/src/redis- export BUILD_TLS=yes BUILD_WITH_MODULES=yes INSTALL_RUST_TOOLCHAIN=yes DISABLE_WERRORS=yes make -j "$(nproc)" all
5. Запуск Redis
cd /usr/src/redis- ./src/redis-server redis-full.conf
### Сборка и запуск Redis со всеми структурами данных - AlmaLinux 8.10 / Rocky Linux 8.10
Тестировано с следующими Docker-образами:
- almalinux:8.10
- almalinux:8.10-minimal
- rockylinux/rockylinux:8.10
- rockylinux/rockylinux:8.10-minimal
1. Подготовка системы
Для 8.10-minimal, установите `sudo` и `dnf` следующим образом:
microdnf install dnf sudo -y
Для 8.10 (обычный), установите `sudo` следующим образом:
dnf install sudo -y
Очистите метаданные пакетов, включите необходимые репозитории и установите инструменты разработки:
sudo dnf clean all sudo tee /etc/yum.repos.d/goreleaser.repo > /dev/null <<EOF [goreleaser] name=GoReleaser baseurl=https://repo.goreleaser.com/yum/ enabled=1 gpgcheck=0 EOF sudo dnf update -y sudo dnf groupinstall "Development Tools" -y sudo dnf config-manager --set-enabled powertools sudo dnf install -y epel-release
2. Установка необходимых зависимостей
Обновите списки пакетов и установите необходимые инструменты и библиотеки разработки: ```
sudo dnf install -y --nobest --skip-broken pkg-config wget gcc-toolset-13-gcc gcc-toolset-13-gcc-c++ git make openssl openssl-devel python3.11 python3.11-pip python3.11-devel unzip rsync clang curl libtool automake autoconf jq systemd-devel
Создайте виртуальное окружение Python:
python3.11 -m venv /opt/venv
Активируйте набор инструментов GCC:
sudo cp /opt/rh/gcc-toolset-13/enable /etc/profile.d/gcc-toolset-13.sh
echo "source /etc/profile.d/gcc-toolset-13.sh" | sudo tee -a /etc/bashrc
Установка CMake
Установите CMake 3.25.1 вручную:
CMAKE_VERSION=3.25.1
ARCH=$(uname -m)
if [ "$ARCH" = "x86_64" ]; then
CMAKE_FILE=cmake-${CMAKE_VERSION}-linux-x86_64.sh
else
CMAKE_FILE=cmake-${CMAKE_VERSION}-linux-aarch64.sh
fi
wget https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_FILE}
chmod +x ${CMAKE_FILE}
./${CMAKE_FILE} --skip-license --prefix=/usr/local --exclude-subdir
rm ${CMAKE_FILE}
cmake --version
Скачивание исходного кода Redis
Скачайте архив с исходным кодом определенной версии Redis с GitHub.
Замените <version>
на версию Redis, например: 8.0.0
.
cd /usr/src
wget -O redis-<version>.tar.gz https://github.com/redis/redis/archive/refs/tags/<version>.tar.gz
Распаковка архива с исходным кодом
Создайте директорию для исходного кода и распакуйте содержимое в нее:
cd /usr/src
tar xvf redis-<version>.tar.gz
rm redis-<version>.tar.gz
Сборка Redis
Активируйте набор инструментов GCC, установите необходимые переменные окружения и соберите Redis:
source /etc/profile.d/gcc-toolset-13.sh
cd /usr/src/redis-<version>
export BUILD_TLS=yes BUILD_WITH_MODULES=yes INSTALL_RUST_TOOLCHAIN=yes DISABLE_WERRORS=yes
make -j "$(nproc)" all
Запуск Redis ``` cd /usr/src/redis- ./src/redis-server redis-full.conf
Тестировано с следующими Docker-образами:
Подготовка системы
Для 9.5-minimal установите sudo
и dnf
следующим образом:
microdnf install dnf sudo -y
Для 9.5 (обычной) установите sudo
следующим образом:
dnf install sudo -y
Очистите метаданные пакетов, включите необходимые репозитории и установите инструменты разработки:
sudo tee /etc/yum.repos.d/goreleaser.repo > /dev/null <<EOF
[goreleaser]
name=GoReleaser
baseurl=https://repo.goreleaser.com/yum/
enabled=1
gpgcheck=0
EOF
sudo dnf clean all
sudo dnf makecache
sudo dnf update -y
Установка необходимых зависимостей
Обновите списки пакетов и установите необходимые инструменты и библиотеки разработки:
sudo dnf install -y --nobest --skip-broken pkg-config xz wget which gcc-toolset-13-gcc gcc-toolset-13-gcc-c++ git make openssl openssl-devel python3 python3-pip python3-devel unzip rsync clang curl libtool automake autoconf jq systemd-devel
Создайте виртуальное окружение Python:
python3 -m venv /opt/venv
Включите GCC toolset:
sudo cp /opt/rh/gcc-toolset-13/enable /etc/profile.d/gcc-toolset-13.sh
echo "source /etc/profile.d/gcc-toolset-13.sh" | sudo tee -a /etc/bashrc
Установка CMake
Установите CMake 3.25.1 вручную:
CMAKE_VERSION=3.25.1
ARCH=$(uname -m)
if [ "$ARCH" = "x86_64" ]; then
CMAKE_FILE=cmake-${CMAKE_VERSION}-linux-x86_64.sh
else
CMAKE_FILE=cmake-${CMAKE_VERSION}-linux-aarch64.sh
fi
wget https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_FILE}
chmod +x ${CMAKE_FILE}
./${CMAKE_FILE} --skip-license --prefix=/usr/local --exclude-subdir
rm ${CMAKE_FILE}
cmake --version
```4. Скачивание исходного кода Redis
Скачайте архив с исходным кодом определенной версии Redis с GitHub.
Замените `<version>` на версию Redis, например: `8.0.0`.
cd /usr/src wget -O redis-.tar.gz https://github.com/redis/redis/archive/refs/tags/.tar.gz
Распаковка архива с исходным кодом
Создайте директорию для исходного кода и распакуйте содержимое в нее:
cd /usr/src
tar xvf redis-<version>.tar.gz
rm redis-<version>.tar.gz
Сборка Redis
Включите GCC toolset, установите необходимые переменные окружения и соберите Redis:
source /etc/profile.d/gcc-toolset-13.sh
cd /usr/src/redis-<version>
export BUILD_TLS=yes BUILD_WITH_MODULES=yes INSTALL_RUST_TOOLCHAIN=yes DISABLE_WERRORS=yes
make -j "$(nproc)" all
Запуск Redis
cd /usr/src/redis-<version>
./src/redis-server redis-full.conf
Установка Homebrew
Если Homebrew еще не установлен, следуйте инструкциям на домашней странице Homebrew.
Установка необходимых пакетов
export HOMEBREW_NO_AUTO_UPDATE=1
brew update
brew install coreutils
brew install make
brew install openssl
brew install llvm@18
brew install cmake
brew install gnu-sed
brew install automake
brew install libtool
brew install wget
Установка Rust
Rust требуется для сборки пакета JSON.
RUST_INSTALLER=rust-1.80.1-$(if [ "$(uname -m)" = "arm64" ]; then echo "aarch64"; else echo "x86_64"; fi)-apple-darwin
wget --quiet -O ${RUST_INSTALLER}.tar.xz https://static.rust-lang.org/dist/${RUST_INSTALLER}.tar.xz
tar -xf ${RUST_INSTALLER}.tar.xz
(cd ${RUST_INSTALLER} && sudo ./install.sh)
```4. Скачивание исходного кода Redis
Скачайте конкретную версию архива исходного кода Redis с GitHub.
Замените `<version>` на версию Redis, например: `8.0.0`.
cd ~/src wget -O redis-.tar.gz https://github.com/redis/redis/archive/refs/tags/.tar.gz
Распаковка архива исходного кода
Создайте директорию для исходного кода и распакуйте содержимое в нее:
cd ~/src
tar xvf redis-<version>.tar.gz
rm redis-<version>.tar.gz
Сборка Redis
cd ~/src/redis-<version>
export HOMEBREW_PREFIX="$(brew --prefix)"
export BUILD_WITH_MODULES=yes
export BUILD_TLS=yes
export DISABLE_WERRORS=yes
PATH="$HOMEBREW_PREFIX/opt/libtool/libexec/gnubin:$HOMEBREW_PREFIX/opt/llvm@18/bin:$HOMEBREW_PREFIX/opt/make/libexec/gnubin:$HOMEBREW_PREFIX/opt/gnu-sed/libexec/gnubin:$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin:$PATH"
export LDFLAGS="-L$HOMEBREW_PREFIX/opt/llvm@18/lib"
export CPPFLAGS="-I$HOMEBREW_PREFIX/opt/llvm@18/include"
mkdir -p build_dir/etc
make -C redis-8.0 -j "$(nproc)" all OS=macos
make -C redis-8.0 install PREFIX=$(pwd)/build_dir OS=macos
Запуск Redis
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
build_dir/bin/redis-server redis-full.conf
Поддержка и инструкции будут предоставлены позже.
Redis можно скомпилировать и использовать на Linux, OSX, OpenBSD, NetBSD, FreeBSD. Мы поддерживаем архитектуры с большим и малым порядком байтов, а также 32-битные и 64-битные системы.
Он может компилироваться на системах, производных от Solaris (например, SmartOS), но наша поддержка этой платформы наилучшими усилиями и Redis не гарантируется работать так же хорошо, как на Linux, OSX и *BSD.Чтобы собрать Redis со всеми структурами данных (включая JSON, временные ряды, Bloom filter, cuckoo filter, count-min sketch, top-k и t-digest) и с Redis Query Engine, сначала убедитесь, что все предварительные условия установлены (см. инструкции по сборке выше, для каждой операционной системы). Вам нужно использовать следующий флаг в команде make
:
make BUILD_WITH_MODULES=yes
Чтобы собрать Redis только с основными структурами данных, используйте:
make
Чтобы собрать Redis с поддержкой TLS, вам потребуются библиотеки разработки OpenSSL (например, libssl-dev на Debian/Ubuntu) и следующий флаг в команде make
:
make BUILD_TLS=yes
Чтобы собрать Redis с поддержкой systemd, вам потребуются библиотеки разработки systemd (например, libsystemd-dev на Debian/Ubuntu или systemd-devel на CentOS), и следующий флаг:
make USE_SYSTEMD=yes
Чтобы добавить суффикс к именам программ Redis, добавьте следующий флаг:
make PROG_SUFFIX="-alt"
Вы можете собрать 32-битную версию Redis, используя:
make 32bit
После сборки Redis, рекомендуется протестировать его с помощью:
make test
Если TLS собран, запуск тестов с включенным TLS (вам потребуется установленный tcl-tls
):
./utils/gen-test-certs.sh
./runtest --tls
Redis имеет некоторые зависимости, которые включены в директорию deps
. Команда make
не пересобирает зависимости автоматически, даже если что-то в исходном коде зависимостей изменяется.Когда вы обновляете исходный код с помощью git pull
или когда код внутри дерева зависимостей изменяется каким-либо другим способом, убедитесь, что вы используете следующую команду, чтобы полностью очистить все и пересобрать с нуля:
make distclean
Это очистит: jemalloc, lua, hiredis, linenoise и другие зависимости.
Также, если вы принудительно задаете определенные параметры сборки, такие как 32-битная целевая платформа, отсутствие оптимизаций компилятора C (для целей отладки) и другие подобные параметры сборки, эти параметры будут кэшироваться бессрочно до тех пор, пока вы не выполните команду make distclean
.
Если после сборки Redis с 32-битной целевой платформой вам нужно пересобрать его с 64-битной целевой платформой или наоборот, вам необходимо выполнить make distclean
в корневом каталоге дистрибутива Redis.
В случае ошибок сборки при попытке создать 32-битный бинарник Redis, попробуйте следующие шаги:
make 32bit
:
make CFLAGS="-m32 -march=native" LDFLAGS="-m32"
MALLOC
. Redis по умолчанию компилируется и связывается с libc malloc, за исключением случаев, когда jemalloc является стандартным на системах Linux. Этот стандарт был выбран, так как jemalloc доказал, что у него меньше проблем с фрагментацией, чем у libc malloc.Чтобы принудительно скомпилировать с использованием libc malloc, используйте:make MALLOC=libc
Чтобы скомпилировать с использованием jemalloc на системах Mac OS X, используйте:
make MALLOC=jemalloc
По умолчанию Redis будет собираться с использованием функции POSIX clock_gettime в качестве источника монотонных часов. На большинстве современных систем можно использовать внутренние часы процессора для повышения производительности. Осторожность при использовании TSC можно найти здесь: http://oliveryang.net/2015/09/pitfalls-of-TSC-usage/
Чтобы собрать с поддержкой внутренних часов процессора, используйте:
make CFLAGS="-DUSE_PROCESSOR_CLOCK"
Redis по умолчанию собирается с дружественным для пользователя цветным выводом. Если вы хотите видеть более подробный вывод, используйте следующую команду:
make V=1
Пожалуйста, ознакомьтесь с файлом TLS.md для получения более подробной информации о том, как использовать Redis с TLS.### Вклады в код
Отправляя код в проект Redis в любой форме, включая отправку pull request через GitHub, фрагмент кода или патч через приватную электронную почту или публичные обсуждения, вы соглашаетесь предоставить ваш код на условиях Соглашения о передаче прав и лицензии на вклад в проект Redis. Подробную информацию см. в файле CONTRIBUTING.md в этом исходном дистрибутиве. Для уязвимостей и ошибок безопасности, пожалуйста, см. SECURITY.md. Открытые релизы Redis подпадают под следующие лицензии:
Версии 7.2.x и более ранние выпуски подпадают под лицензию BSDv3. Эти вклады в исходный проект Redis принадлежат их авторам и лицензированы под лицензией 3BSDv3, как указано в файле REDISCONTRIBUTIONS.txt. Любая копия этой лицензии в этом репозитории применяется только к этим вкладам;2. Версии 7.4.x до 7.8.x подпадают под ваш выбор лицензии RSALv2 или SSPLv1;
Версия 8.0.x и последующие выпуски подпадают под три лицензии RSALv2/SSPLv1/AGPLv3 на ваш выбор, как указано в файле LICENSE.txt.
Цель торговой марки — идентифицировать товары и услуги лица или компании без создания путаницы. В качестве зарегистрированного владельца своего имени и логотипа, Redis допускает определенные ограниченные использования своих торговых марок, но у него есть требования, которые должны соблюдаться, как описано в его Руководстве по торговым маркам, доступном по адресу: https://redis.io/legal/trademark-policy/.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )