RedisHash-Values数据丢失bug
This commit is contained in:
parent
45f840fad2
commit
e4fcca6d49
|
@ -1,8 +1,11 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
using NewLife.Caching;
|
using NewLife.Caching;
|
||||||
using NewLife.Log;
|
using NewLife.Log;
|
||||||
|
using NewLife.Serialization;
|
||||||
|
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace XUnitTest;
|
namespace XUnitTest;
|
||||||
|
@ -111,6 +114,35 @@ public class HashTest
|
||||||
|
|
||||||
rh["0"] = new EventInfo { EventId = "1234", EventName = "Stone" };
|
rh["0"] = new EventInfo { EventId = "1234", EventName = "Stone" };
|
||||||
}
|
}
|
||||||
|
[Fact(DisplayName = "获取所有数据,丢失数据bug")]
|
||||||
|
public void ValuesHashTest()
|
||||||
|
{
|
||||||
|
//RedisHash、RedisList[Values、Values、GetAll、Search] redis 5.0 都有类似的情况
|
||||||
|
//大批量数据获取,大概率会数据不完整,具体原有不明
|
||||||
|
var key = $"NewLife:HashTestInfo:Test";
|
||||||
|
{
|
||||||
|
_redis.MaxMessageSize = int.MaxValue;
|
||||||
|
var hash = _redis.GetDictionary<string>(key) as RedisHash<string, string>;
|
||||||
|
hash.Clear();
|
||||||
|
for (var i = 0; i < 10000; i++)
|
||||||
|
{
|
||||||
|
var k = i.ToString();
|
||||||
|
hash.Add(k, new EventInfo { EventId = k, EventName = k }.ToJson());
|
||||||
|
}
|
||||||
|
|
||||||
|
//直接获取全部数据,如泛型对象的直接报错
|
||||||
|
var list = hash.Values.ToList();
|
||||||
|
for (var i = 0; i < list.Count; i++)
|
||||||
|
{
|
||||||
|
try { var item = list[i].ToJsonEntity<EventInfo>(); }
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
//某块连续的数据段可能会不完整
|
||||||
|
Assert.Fail($"Index:{i} Item:{list[i]} Msg:{ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void RemoveTest()
|
public void RemoveTest()
|
||||||
|
|
Loading…
Reference in New Issue