Поделиться через


Клиентские библиотеки Управляемого 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

Особые рекомендации для клиентских библиотек

Дополнительные сведения о рекомендациях для конкретной клиентской библиотеки см. по следующим ссылкам:

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, используя разные языки и клиенты кэша.

Дополнительные сведения учебных пособий об использовании некоторых из этих клиентских библиотек см. в следующих статьях:

Следующие шаги