Представьте, что вы пишете back-end небольшого интернет-магазина, состоящего из серверного приложения с бизнес-логикой и реляционной базы данных:
Первое время архитектура покрывает все ваши нужды: товары отображаются, заказы создаются быстро. Но со временем проект усложняется. Чаще всего это вызвано двумя факторами:
В определенный момент реляционной системы управления базами данных (далее "РСУБД") становится недостаточно и в архитектуре появляются дополнительные технологии для решения конкретных проблем.
Несколько примеров практических задач, когда РСУБД — неподходящее или неоптимальное решение:
Для эффективного решения вышеописанных задач подходит open-source база данных Redis. Сегодня тысячи компаний, включая Instagram, Twitter, Uber, Airbnb, выбирают Redis за его скорость и масштабируемость.
Все основные варианты использования Redis будут рассмотрены по ходу этого курса. Сейчас достаточно знать главные особенности этого хранилища:
Несмотря на то, что вся практика для данного курса выполняется в нашей среде, это не отрицает необходимости уметь работать с базой локально. Более того, эффективное обучение невозможно без повторения примеров из уроков в своей среде. Поэтому, перед тем, как начать, необходимо установить Redis локально.
MacOS:
brew install redis
Linux:
sudo add-apt-repository ppa:redislabs/redis
sudo apt-get update
sudo apt-get install redis
docker run --name local-redis -d redis
После установки Redis сервер нужно запускать вручную:
redis-server
11760:C 07 Dec 2021 18:25:26.103 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
11760:C 07 Dec 2021 18:25:26.103 # Redis version=6.2.6, bits=64, commit=00000000, modified=0, pid=11760, just started
11760:C 07 Dec 2021 18:25:26.103 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
11760:M 07 Dec 2021 18:25:26.104 * Increased maximum number of open files to 10032 (it was originally set to 256).
11760:M 07 Dec 2021 18:25:26.104 * monotonic clock: POSIX clock_gettime
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 6.2.6 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 11760
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | https://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
11760:M 07 Dec 2021 18:25:26.105 # Server initialized
11760:M 07 Dec 2021 18:25:26.105 * Ready to accept connections
Такой способ подходит для академических целей, но не используется в производственных окружениях. Обычно Redis сервер запускается как демон (daemon):
redis-server --daemonize yes
Когда сервер запущен, можно попробовать подключиться к нему с помощью утилиты redis-cli
:
redis-cli
127.0.0.1:6379>
Чтобы удостовериться, что сервер работает корректно, достаточно запустить команду info
:
127.0.0.1:6379> info
# Server
redis_version:6.2.6
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:c6f3693d1aced7d9
redis_mode:standalone
os:Darwin 19.5.0 x86_64
arch_bits:64
...
В разделе установки через Docker Redis сервер запускается в контейнере с именем local-redis. Используем это же имя для подключения:
docker exec -it local-redis redis-cli
В этом курсе рассматриваются основные варианты использования Redis с практическими примерами:
Вам ответят команда поддержки Хекслета или другие студенты.
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
Наши выпускники работают в компаниях:
Зарегистрируйтесь или войдите в свой аккаунт
Задавайте вопросы, если хотите обсудить теорию или упражнения. Команда поддержки Хекслета и опытные участники сообщества помогут найти ответы и решить задачу