File tree Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Original file line number Diff line number Diff line change 1
1
using System ;
2
2
using System . Collections . Generic ;
3
3
using System . Linq ;
4
+
4
5
using NewLife . Caching ;
5
6
using NewLife . Log ;
7
+ using NewLife . Serialization ;
8
+
6
9
using Xunit ;
7
10
8
11
namespace XUnitTest ;
@@ -111,6 +114,35 @@ public void CheckHashTest()
111
114
112
115
rh [ "0" ] = new EventInfo { EventId = "1234" , EventName = "Stone" } ;
113
116
}
117
+ [ Fact ( DisplayName = "获取所有数据,丢失数据bug" ) ]
118
+ public void ValuesHashTest ( )
119
+ {
120
+ //RedisHash、RedisList[Values、Values、GetAll、Search] redis 5.0 都有类似的情况
121
+ //大批量数据获取,大概率会数据不完整,具体原有不明
122
+ var key = $ "NewLife:HashTestInfo:Test";
123
+ {
124
+ _redis . MaxMessageSize = int . MaxValue ;
125
+ var hash = _redis . GetDictionary < string > ( key ) as RedisHash < string , string > ;
126
+ hash . Clear ( ) ;
127
+ for ( var i = 0 ; i < 10000 ; i ++ )
128
+ {
129
+ var k = i . ToString ( ) ;
130
+ hash . Add ( k , new EventInfo { EventId = k , EventName = k } . ToJson ( ) ) ;
131
+ }
132
+
133
+ //直接获取全部数据,如泛型对象的直接报错
134
+ var list = hash . Values . ToList ( ) ;
135
+ for ( var i = 0 ; i < list . Count ; i ++ )
136
+ {
137
+ try { var item = list [ i ] . ToJsonEntity < EventInfo > ( ) ; }
138
+ catch ( Exception ex )
139
+ {
140
+ //某块连续的数据段可能会不完整
141
+ Assert . Fail ( $ "Index:{ i } Item:{ list [ i ] } Msg:{ ex . Message } ") ;
142
+ }
143
+ }
144
+ }
145
+ }
114
146
115
147
[ Fact ]
116
148
public void RemoveTest ( )
You can’t perform that action at this time.
0 commit comments