Клиентские библиотеки Управляемого Redis (предварительная версия) Azure
Система Redis под управлением Azure (предварительная версия) основана на Redis, популярном хранилище данных в памяти. Клиенты Redis для многих языков программирования могут получить доступ к Управляемому Redis Azure. Каждая клиентская библиотека имеет собственный API, который вызывает сервер Redis с помощью команд Redis, но клиентские библиотеки создаются для взаимодействия с любым сервером Redis.
У каждой клиентской библиотеки собственная справочная документация. Библиотеки также предоставляют ссылки для получения поддержки через сообщество разработчиков клиентской библиотеки. Команда Redis под управлением Azure не владеет разработкой и не осуществляет поддержку каких-либо клиентских библиотек.
Следующие рекомендации основаны на популярности и наличии активного онлайн-сообщества для поддержки и ответа на ваши вопросы. Мы рекомендуем использовать последнюю доступную версию и регулярно проводить обновления по мере того, как новые версии становятся доступными. Эти библиотеки находятся в активной разработке, и часто выпускаются новые версии с улучшениями в области надежности и производительности.
Клиентская библиотека | Язык | РепозиторийGitHub | Документация |
---|---|---|---|
StackExchange.Redis | C#/.NET | Ссылка | См. подробнее здесь |
Lettuce | Java | Ссылка | См. подробнее здесь |
Jedis | Java | Ссылка | |
node_redis | Node.js | Ссылка | |
Redisson | Java | Ссылка | См. подробнее здесь |
ioredis. | Node.js | Ссылка | См. подробнее здесь |
Примечание.
Приложение может использовать любую клиентскую библиотеку, которая совместима с Redis с открытым кодом, для подключения к экземпляру Redis под управлением Azure.
Выбор клиентской библиотеки на основе вашей политики кластеризации
Redis под управлением Azure поддерживает политики кластеризации Enterprise и OSS. Дополнительную информацию можно найти в статье (добавить ссылку на статью о политике кластеризации).
Все клиентские библиотеки будут работать с экземпляром Redis с политикой кластеризации Enterprise. Однако если вы используете политику кластеризации OSS, убедитесь, что выбранная клиентская библиотека поддерживает подключение к кластеризованным экземплярам Redis.
Заблокированные команды
Корпорация Майкрософт управляет конфигурацией и управлением экземплярами Управляемого Redis Azure, что по умолчанию отключает следующие команды. Дополнительную информацию о заблокированных командах можно найти в статье Совместимость команд управления кластерами
Команды с несколькими ключами
Так как экземплярами AMR используется кластеризованная конфигурация, могут отображаться исключения CROSSSLOT
для команд, которые работают с несколькими ключами. Поведение зависит от используемой политики кластеризации. Если используется политика кластеризации OSS, у команд с несколькими ключами необходимо сопоставить все ключи с одним хэш-слотом.
При использовании политики кластеризации Enterprise также могут возникнуть ошибки CROSSSLOT
. Только следующие команды с несколькими ключами допускаются в слотах с кластеризацией Enterprise DEL
, MSET
, MGET
, EXISTS
, UNLINK
и TOUCH
.
В базах данных "активный — активный" команды записи с несколькими ключами (DEL
, MSET
, UNLINK
) могут выполняться только с ключами, которые находятся в одном слоте. Однако в базах данных "активный — активный" разрешены следующие команды с несколькими ключами в разных слотах: MGET
, EXISTS
и TOUCH
. Дополнительные сведения см. в разделе Кластеризация баз данных.
Команды, заблокированные для политики кластеризации Enterprise
- CLUSTER INFO
- CLUSTER HELP
- CLUSTER KEYSLOT
- CLUSTER NODES
- CLUSTER SLOTS
Команды, заблокированные для активной георепликации
- FLUSHALL
- FLUSHDB
Особые рекомендации для клиентских библиотек
Дополнительные сведения о рекомендациях для конкретной клиентской библиотеки см. по следующим ссылкам:
- StackExchange.Redis (.NET)
- Lettuce (Java)
- Jedis (Java)
- Redisson (Java)
- Node.js
- PHP
- HiRedisCluster
- Поставщик состояний сеансов ASP.NET
Redisson (Java)
Рекомендуется использовать версию Redisson 3.14.1 или более позднюю. В более старых версиях имеются выявленные проблемы с утечкой подключения, которые вызывают ошибки после восстановления после отказа. Отслеживайте журнал изменений Redisson, чтобы оперативно узнавать о других известных проблемах, которые могут повлиять на функции, используемые вашим приложением. Дополнительные сведения см. в статьеCHANGELOG
и на странице Часто задаваемые вопросы о Redisson.
Другие примечания.
- В Redisson по умолчанию используется стратегия чтения из реплики (в отличие от других клиентов). Чтобы изменить этот параметр по умолчанию, измените параметр конфигурации readMode.
- В Redisson используется стратегия пула подключений с настраиваемыми минимальными и максимальными параметрами, причем минимальные значения по умолчанию являются большими. Большие значения по умолчанию могут способствовать агрессивному поведению повторного подключения или "штормам подключения". Чтобы свести вероятность этого к минимуму, попробуйте использовать меньшее количество подключений, так как вы можете эффективно конвейерировать команды или пакеты команд по нескольким подключениям.
- Redisson имеет время ожидания бездействия по умолчанию в 10 секунд, что приводит к большему закрытию и повторному открытию подключений, чем в идеале.
Вот рекомендуемая базовая конфигурация для режима кластера, которую можно изменять при необходимости:
clusterServersConfig:
idleConnectionTimeout: 30000
connectTimeout: 15000
timeout: 5000
retryAttempts: 3
retryInterval: 3000
checkLockSyncedSlaves: false
failedSlaveReconnectionInterval: 15000
failedSlaveCheckInterval: 60000
subscriptionsPerConnection: 5
clientName: "redisson"
loadBalancer: !<org.redisson.connection.balancer.RoundRobinLoadBalancer> {}
subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 50
slaveConnectionMinimumIdleSize: 2
slaveConnectionPoolSize: 24
masterConnectionMinimumIdleSize: 2
masterConnectionPoolSize: 24
readMode: "MASTER"
subscriptionMode: "MASTER"
nodeAddresses:
- "redis://mycacheaddress:10000"
scanInterval: 1000
pingConnectionInterval: 60000
keepAlive: false
tcpNoDelay: true
Сведения о поддержке Redisson JCache в качестве хранилища состояния сеанса HTTP в IBM Liberty в Azure см. в статье Об использовании Java EE JCache с Open Liberty или WebSphere Liberty в кластере Служба Azure Kubernetes (AKS).
Использование клиентских библиотек
Помимо справочной документации можно найти учебники, показывающие, как приступить к работе с Redis под управлением Azure, используя разные языки и клиенты кэша.
Дополнительные сведения учебных пособий об использовании некоторых из этих клиентских библиотек см. в следующих статьях:
- Создание приложения .NET Framework
- Создание приложения .NET Core
- Создание веб-приложения ASP.NET
- Создание веб-приложения ASP.NET Core
- Создание приложения Java
- Создание приложения Node.js
- Создание приложения Python