Клиентские библиотеки Управляемого Redis (предварительная версия) Azure
Управляемый Redis (предварительная версия) Azure основан на популярном хранилище данных в памяти Redis. Доступ к Управляемому Redis Azure можно получить различными клиентами Redis для многих языков программирования. Каждая клиентская библиотека имеет собственный 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, команды с несколькими ключами необходимо сопоставить все ключи с одним хэш-слотом.
Также могут появиться CROSSSLOT
ошибки с политикой кластеризации Enterprise. Только следующие команды с несколькими ключами разрешены в слотах с кластеризации Enterprise: DEL
, , EXISTS
UNLINK
MSET
MGET
и .TOUCH
В базах данных Active-Active команды записи с несколькими ключами (DEL
, MSET
, ) UNLINK
могут выполняться только на ключах, которые находятся в одном слоте. Однако следующие команды с несколькими ключами разрешены в слотах в базах данных Active-Active: MGET
и TOUCH
EXISTS
. Дополнительные сведения см. в разделе "Кластеризация баз данных".
Команды, заблокированные для политики кластеризации Enterprise
- СВЕДЕНИЯ О КЛАСТЕРЕ
- СПРАВКА ПО КЛАСТЕРУ
- КЛАСТЕР KEYLOT
- УЗЛЫ КЛАСТЕРА
- СЛОТЫ КЛАСТЕРА
Команды, заблокированные для активной георепликации
- FLUSHALL
- FLUSHDB
Особые рекомендации для клиентских библиотек
Дополнительные сведения о рекомендациях для конкретной клиентской библиотеки см. по следующим ссылкам:
- StackExchange.Redis (.NET)
- Java — какой клиент следует использовать?
- 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