Я получил исключение при выполнении пакета HashGetAsync
var redisBatch = redisDb.CreateBatch();
//track task return, long (the task id), string, the result key, int:0, kline 1,metadata
var taskTrack = new List>();</p>
<pre><code> var hashsetRedisKey = RedisKeyBuilder.GetKeyForKLineHashSet(redisResult.hashCode.ToString(), redisResult.klineType);
var klineTask = redisBatch.HashGetAsync(hashsetRedisKey, redisResult.klineTime.ToString());
tasks.Add(klineTask);
taskTrack.Add(Tuple.Create<long, TBKLineRedisQueryTaskResult, int>(klineTask.Id, redisResult, 0));
var hashsetMetadataRedisKey = RedisKeyBuilder.GetKeyForKLineMetadataHashSet(code.Item1.ToString(), code.Item2);
var metadataTask = redisBatch.HashGetAsync(hashsetMetadataRedisKey, redisResult.klineTime.ToString());
tasks.Add(metadataTask);
taskTrack.Add(Tuple.Create<long, TBKLineRedisQueryTaskResult, int>(metadataTask.Id, redisResult, 1));
};
redisBatch.Execute();
await Task.WhenAll(tasks);
Затем я получил исключение, как показано ниже.
StackExchange.Redis.RedisServerException: ключ перенесен из конечной точки 172.31.31.87:6379 и hashslot 9097, ноУказан CommandFlags.NoRedirect - перенаправление не выполняется для HGET KLineMetadata_K15min_3934036393829150277_HashSet.IOCP: (Занято = 1, Свободно = 999, Мин. = 8, Макс. = 1000), РАБОЧИЙ: (Занято = 2, Свободно = 32765, Мин. = 8, Макс. = 32767), Локальный ЦП: н / д в системе.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача-задача) в System.Runtime.CompilerServices.TaskAwaiter`1.()
Я попробовал это в модульном тесте (если я поставил только несколько ключей, чтобы получить).Но в моей работе, для которой у меня будут сотни (а не тысячи) ключей для получения, это создаст для меня исключение такого рода.
Мой проект - .Net Core, и я использую SE.Redis 2.0.513.
![enter image description here](https://i.stack.imgur.com/WLzjB.jpg)