Существует ли пакет redis для «Azure cache для Redis» в dart 2.9.2 (для приложения flutter), который принимает имя хоста, порт и его ключ в строке подключения?

#azure #flutter #dart #redis #stackexchange.redis

#azure #flutter #dart #redis #stackexchange.redis

Вопрос:

Я хочу подключить свой Azure Cache для Redis в приложении flutter. В настоящее время я попробовал два пакета в dart для redis: redis 1.3.0 и dartis 0.5.0.

Пример:

 import 'package:redis/redis.dart';
...
RedisConnection conn = new RedisConnection();
    conn
        .connect('localhost', 6379)
        .then((Command command) {
      print("yo2");
      command.send_object(["SET", "key1", "value1"]).then((var response) {
        print(response);
      });
    });
 

Вместо «localhost» я поставил «SampleName.redis.cache.windows.net «. Это ошибка, которую я получаю:

E / flutter (4861): [ОШИБКА: flutter/shell/ common/shell.cc(209)] Ошибка Dart: необработанное исключение: E / flutter (4861): ошибка повторного сбоя (не требуется аутентификация по протоколу AUTH.)

старый пакет Это пакет, размещенный на веб-сайте Redis. Но он несовместим с версиями> 2.

Ответ №1:

Итак, я нашел решение. Используйте свой ключ следующим образом:

Для redis 1.3.0:

 ...
 RedisConnection conn = new RedisConnection();
    conn
        .connect('SampleName.redis.cache.windows.net', 6379)
        .then((Command command) {
      print("yo2");
      command.send_object([
        "AUTH",
        "<YourKey>"
      ]).then((var response) {
        print(response);
      });

      command.send_object(["SET", "key1", "value1"]);
    });
...
 

И для дартиса 0.5.0:

 ...
final client = await redis.Client.connect(
        'redis://SampleName.redis.cache.windows.net:6379');

    // Runs some commands.
    final commands = client.asCommands<String, String>();
    await commands.auth("<YourKey>");
    // SET key value
    await commands.set('yo', 'yovalue');
...