キーで同時に複数のセットを取得しようとしています。Azure Redis の Basic レベルを最新の Stackexchange.Redis (1.1.608) と共に使用しています。
これが私のコードです:
var tasks = new List<Task<RedisValue[]>>();
foreach (var key in keys)
{
tasks.Add(redisCacheDB.SetMembersAsync(key));
}
var buildLinksJsonArray = await Task.WhenAll(tasks);
最大 120 個のキー (ほとんどのキーは存在しません) の場合、パイプラインが完了するまでに最大 10 秒かかります。私は何を間違っていますか?
SetScan も試してみましたが、タイムアウトしないことはありません。また、120 個の SetScan を連続して実行するかどうかもわかりません。
ありがとう、
編集: 各セットには最大 20 人のメンバーしかいません。昨日、別のアプローチを試しました:
バッチ処理: 約 5 秒かかります
Set Union: 約 1 ~ 2 秒かかります。(私は redis.SetUnion(list of key) を行います)
今のところ、時間が最も短いため、Set Union を使用しています。ただし、約 120 セットを取得するのに必要な時間よりも 2 秒の方が長いと思います。誰でも何か考えがありますか?私は提案を受け入れます。