Так что мне нужно получить доступ к большому количеству разных хэшей (в StackExchange.Redis, у меня разные RedisKey).StackExchange.Redis: пакетный доступ для нескольких хэшей
Каков наилучший (самый быстрый) способ сделать это? Например, для этих двух возможных реализаций является либо правильным? Какой из них лучше работает?
List<Task<HashEntry[]>> list = new List<Task<HashEntry[]>>(); List<RedisKey> keys; //Previously initialized list of keys foreach (var key in keys) { var task = db.HashGetAllAsync(key); list.Add(task); } await Task.WhenAll(list);
2.
List<Task<HashEntry[]>> list = new List<Task<HashEntry[]>>();
List<RedisKey> keys; //Previously initialized list of keys
IBatch batch = db.CreateBatch();
foreach (var key in keys)
{
var task = batch.HashGetAllAsync(key);
list.Add(task);
}
batch.Execute();
Здравствуйте. Я попробовал три из них ... странно (для меня) победитель (а иногда и большой запас) был «конвейерным» (многократно называя HashGetAllAsync и ожидая). Я говорю странно, потому что, читая в Интернете, Lua, казалось, было превосходным решением. Может быть, я использую плохой скрипт? Я использую аналогичный скрипт для опубликованного здесь [link] (http://stdout.tradier.com/development/2014/07/10/using-lua-to-implement-multi-get-on-redis-hash .html). –