1

キーで同時に複数のセットを取得しようとしています。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 秒の方が長いと思います。誰でも何か考えがありますか?私は提案を受け入れます。

4

0 に答える 0