将10万Redis的Hash表数据读取优化到13秒以内。
This commit is contained in:
parent
78127f7cea
commit
cadb69f4b9
@ -492,20 +492,14 @@ return {#result_members, result_members, result_scores, hash_data}";
|
|||||||
var scores = ((object[])scriptResult[2]).Cast<string>().Select(decimal.Parse).ToList();
|
var scores = ((object[])scriptResult[2]).Cast<string>().Select(decimal.Parse).ToList();
|
||||||
var hashData = ((object[])scriptResult[3]).Cast<string>().ToList();
|
var hashData = ((object[])scriptResult[3]).Cast<string>().ToList();
|
||||||
|
|
||||||
var validItems = members.Select((m, i) =>
|
var validItems = members.AsParallel()
|
||||||
|
.Select((m, i) =>
|
||||||
{
|
{
|
||||||
try
|
try { return BusJsonSerializer.Deserialize<T>(hashData[i]); }
|
||||||
{
|
catch { return null; }
|
||||||
return !string.IsNullOrEmpty(hashData[i])
|
})
|
||||||
? BusJsonSerializer.Deserialize<T>(hashData[i])
|
.Where(x => x != null)
|
||||||
: null;
|
.ToList();
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
_logger.LogError($"反序列化失败: {m} - {ex.Message}");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}).Where(x => x != null).ToList();
|
|
||||||
|
|
||||||
var hasNext = validItems.Count > pageSize;
|
var hasNext = validItems.Count > pageSize;
|
||||||
var actualItems = hasNext ? validItems.Take(pageSize) : validItems;
|
var actualItems = hasNext ? validItems.Take(pageSize) : validItems;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user