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


Клиентские библиотеки Azure Managed Redis

Управляемый Redis Azure основан на популярном хранилище данных в памяти Redis. Клиенты Redis для многих языков программирования могут получить доступ к Управляемому Redis Azure. Каждая клиентская библиотека имеет собственный API, который вызывает сервер Redis с помощью команд Redis, но клиентские библиотеки создаются для связи с любым сервером Redis.

Каждая клиентская библиотека поддерживает собственную справочную документацию. Библиотеки также предоставляют ссылки для получения поддержки через сообщество разработчиков клиентской библиотеки. Команда Управляемого Redis в Azure не владеет разработкой или поддержкой каких-либо клиентских библиотек.

Следующие рекомендации основаны на популярности и наличии активного онлайн-сообщества для поддержки и ответа на ваши вопросы. Мы рекомендуем использовать только последнюю доступную версию и регулярно обновляться по мере того, как новые версии становятся доступными. Эти библиотеки находятся в активной разработке и часто выпускают новые версии с улучшениями надежности и производительности.

Клиентская библиотека Язык Репозиторий GitHub документация
StackExchange.Redis C#/.NET Ссылка Дополнительные сведения здесь
Салат Ява Ссылка Дополнительные сведения здесь
Джедис Ява Ссылка
node_redis Node.js Ссылка
Редиссон Ява Ссылка Дополнительные сведения здесь
ioredis. Node.js Ссылка Дополнительные сведения здесь

Замечание

Приложение может использовать любую клиентную библиотеку, совместимую с Redis с открытым исходным кодом, для подключения к экземпляру Управляемого Redis в Azure.

Выбор правильной клиентской библиотеки на основе политики кластеризации

Управляемый Redis Azure поддерживает политику кластеризации enterprise и политику кластеризации OSS. Дополнительные сведения см. здесь (добавьте ссылку на сведения о политике кластеризации).

Все клиентские библиотеки работают с экземпляром Redis с политикой кластеризации Enterprise. Однако если вы используете политику кластеризации OSS, убедитесь, что выбранная клиентская библиотека поддерживает подключение к кластеризованным экземплярам Redis.

Заблокированные команды

Корпорация Майкрософт управляет настройками и обслуживанием экземпляров Azure Managed Redis, что по умолчанию отключает следующие команды. Дополнительные сведения о заблокированных командах см. в разделе "Совместимость команд управления кластерами"

Команды с несколькими ключами

Так как экземпляры AMR используют кластеризованную конфигурацию, вы можете увидеть CROSSSLOT исключения в командах, работающих с несколькими ключами. Поведение зависит от используемой политики кластеризации. Если используется политика кластеризации OSS, у команд с несколькими ключами необходимо сопоставить все ключи с одним хэш-слотом.

При использовании политики кластеризации Enterprise также могут возникнуть ошибки CROSSSLOT. Только следующие команды с несколькими ключами допускаются в слотах с кластеризацией Enterprise DEL, MSET, MGET, EXISTS, UNLINK и TOUCH.

В базах данных Active-Active команды записи с несколькими ключами (DEL, MSET, UNLINK) могут запускаться только с ключами, которые находятся в одном слоте. Однако в базах данных Active-Active разрешены следующие команды с несколькими ключами в разных слотах: MGET, EXISTS и TOUCH. Дополнительные сведения см. в разделе Кластеризация баз данных.

Команды, заблокированные для политики кластеризации Enterprise

  • СВЕДЕНИЯ О КЛАСТЕРЕ
  • СПРАВКА ПО КЛАСТЕРУ
  • КЛАСТЕР ДЛЯ КЛЮЧЕЙ
  • УЗЛЫ КЛАСТЕРА
  • СЛОТЫ КЛАСТЕРА

Команды, заблокированные для активной георепликации

  • 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 с помощью разных языков и клиентов кэша.

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

Дальнейшие шаги