#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');
...