Ei!
Ao tentar mexer com o módulo RedisGraph , encontrei um limite de 23 bytes ao tentar executar um comando reconhecidamente grande usando ExecuteAsync
.
RedisResult result;
using (var connectionMultiplexer = ConnectionMultiplexer.Connect("localhost"))
{
var database = connectionMultiplexer.GetDatabase();
var query = "GRAPH.QUERY MotoGP \"CREATE (:Rider {name:'Valentino Rossi'})-[:rides]->(:Team {name:'Yamaha'}), (:Rider {name:'Dani Pedrosa'})-[:rides]->(:Team {name:'Honda'}), (:Rider {name:'Andrea Dovizioso'})-[:rides]->(:Team {name:'Ducati'})\"";
result = await database.ExecuteAsync(query);
}
Minha pergunta é: há outra maneira recomendada de enviar comandos comicamente grandes para o Redis?
Obrigado,
Tom
O comando aqui é apenas GRAPH.QUERY
, com os parâmetros enviados separadamente. Existe um params object[] args
para este propósito. Observe que tudo o que é classificado como uma chave deve ser enviado como RedisKey
valores, para garantir que o roteamento funcione corretamente, especialmente no "cluster".
Acho que isso significa, no seu caso:
c#
result = await database.ExecuteAsync("GRAPH.QUERY",
(RedisKey)"MotoGP", "CREATE...");
então, um comando com dois argumentos, o primeiro dos quais é uma chave.
Bem, me sinto um pouco tolo.
Em qualquer caso, obrigado pela sua ajuda!
Sem problemas. Se você encontrar mais obstáculos, entre em contato conosco. Se
qualquer coisa, significa que não estamos tornando a API suficientemente óbvia
No sábado, 18 de maio de 2019, 22:40, Tommy Hanks, [email protected] escreveu:
Fechado # 1148
https://github.com/StackExchange/StackExchange.Redis/issues/1148 .-
Você está recebendo isto porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/StackExchange/StackExchange.Redis/issues/1148?email_source=notifications&email_token=AAAEHMFPNQV76AY6RYZ6L3LPWBZUVA5CNFSM4HN3BKA2YY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGORQR3UWI#event-2351151705 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/AAAEHMFLYFR2K4FGZHE6NTLPWBZUVANCNFSM4HN3BKAQ
.
Comentários muito úteis
Acho que isso significa, no seu caso:
c# result = await database.ExecuteAsync("GRAPH.QUERY", (RedisKey)"MotoGP", "CREATE...");
então, um comando com dois argumentos, o primeiro dos quais é uma chave.