Происхождение 16 баз данных
Redis — это сервер хранения со словарной структурой. Экземпляр Redis предоставляет несколько словарей для хранения данных. Клиент может указать, в каком словаре хранить данные, что аналогично созданию нескольких баз данных в экземпляре реляционной базы данных. Таким образом, каждый словарь можно понимать как отдельная база данных.
Вы можете настроить файл конфигурации Redis,
redis/redis.conf
Чтобы изменить это значение, перезапустите Redis после настройки, чтобы завершить настройку.-
После того, как клиент установит соединение с Redis, по умолчанию будет выбрана база данных 0, но вы можете использовать команду SELECT, чтобы изменить базу данных в любое время.
1redis> SELECT 1 # 默认0号db,切换为1号db 2OK 3redis [1] > GET username # 从1号库中获取 username
-
Spring проект можно настроить в файле конфигурации
1spring.redis.database=10
Правильное использование «базы данных» redis
-
Поскольку Redis не поддерживает пользовательские имена баз данных, каждой базе данных присваивается номер. Разработчику необходимо зафиксировать соответствующую связь между хранимыми данными и базой данных. Кроме того, Redis не поддерживает установку разных паролей доступа для каждой базы данных, поэтому клиент либо может получить доступ ко всем базам данных, либо все базы данных не имеют разрешения на доступ. Однако, чтобы правильно понять концепцию «базы данных» Redis, необходимо упомянуть одну команду:
1#清空一个Redis实例中所有数据库中的数据 2redis 127.0.0.1:6379> FLUSHALL
Эта команда может очистить все данные базы данных в экземпляре, который отличается от знакомой нам реляционной базы данных. Несколько баз данных реляционных баз данных часто используются для хранения данных разных приложений, и нет возможности одновременно очистить все данные базы данных в экземпляре. Так что для Redis эти БД больше похожи на пространства имен и не подходят для хранения данных разных приложений. Например, вы можете использовать базу данных № 0 для хранения данных в производственной среде приложения и использовать базу данных № 1 для хранения данных в тестовой среде, но не подходит для использования базы данных № 0 для хранения данные приложения A и базы данных № 1 для использования данных приложения B.Разные приложения должны использовать разные экземпляры Redis для хранения данных.. Redis очень легкий, а пустой экземпляр Redis занимает всего около 1 МБ, поэтому не нужно беспокоиться о том, что несколько экземпляров Redis займут много дополнительной памяти.
Поддерживать ли один экземпляр с несколькими базами данных в случае кластеризации
- В случае с кластером использование команды select для переключения БД не поддерживается,Потому что в режиме кластера Redis есть только один db0.
- Ограничена поддержка ключевых пакетных операций: например, mget и mset должны находиться в слоте.
- Ключевые транзакции и поддержка Lua ограничены: ключ для операции должен находиться на узле
- key — наименьшая степень детализации разбиения данных: разбиение по большому ключу не поддерживается
- Несколько баз данных не поддерживаются: в кластерном режиме есть только одна db0.
- Копирование поддерживает только один слой: древовидная структура копии не поддерживается.
Суммировать
- Экземпляр Redis по умолчанию имеет 16 dbs.Поскольку он не поддерживает независимое именование баз данных, он именуется как dbX. Количество баз данных по умолчанию можно установить, изменив значение базы данных в файле конфигурации. Правильное понимание db должно быть «пространство имен». Несколько приложений не должны использовать одну и ту же библиотеку Redis, но одно приложение соответствует экземпляру Redis, и разные базы данных могут использоваться для хранения данных в разных средах. Наконец, следует отметить, что в кластере Redis есть только db0, а несколько db не поддерживаются.