DH.NRedis.Extensions 3.7.2024.826-beta0225

This is a prerelease version of DH.NRedis.Extensions.
There is a newer version of this package available.
See the version list below for details.
dotnet add package DH.NRedis.Extensions --version 3.7.2024.826-beta0225                
NuGet\Install-Package DH.NRedis.Extensions -Version 3.7.2024.826-beta0225                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DH.NRedis.Extensions" Version="3.7.2024.826-beta0225" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DH.NRedis.Extensions --version 3.7.2024.826-beta0225                
#r "nuget: DH.NRedis.Extensions, 3.7.2024.826-beta0225"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install DH.NRedis.Extensions as a Cake Addin
#addin nuget:?package=DH.NRedis.Extensions&version=3.7.2024.826-beta0225&prerelease

// Install DH.NRedis.Extensions as a Cake Tool
#tool nuget:?package=DH.NRedis.Extensions&version=3.7.2024.826-beta0225&prerelease                

DH.NRedis - Redis客户端组件

DH.NRedis 是一个Redis客户端组件,以高性能处理大数据实时计算为目标。
Redis协议基础实现Redis/RedisClient位于X组件,本库为扩展实现,主要增加列表结构、哈希结构、队列等高级功能。


特性

  • 2017年在ZTO大数据实时计算广泛应用,200多个Redis实例稳定工作一年多,每天处理近1亿条包裹数据,日均调用量80亿次
  • 低延迟,Get/Set操作平均耗时200~600us(含往返网络通信)
  • 大吞吐,自带连接池,最大支持100000并发
  • 高性能,支持二进制序列化

Redis经验分享

  • 在Linux上多实例部署,实例个数等于处理器个数,各实例最大内存直接为本机物理内存,避免单个实例内存撑爆
  • 把海量数据(10亿+)根据key哈希(Crc16/Crc32)存放在多个实例上,读写性能成倍增长
  • 采用二进制序列化,而非常见Json序列化
  • 合理设计每一对Key的Value大小,包括但不限于使用批量获取,原则是让每次网络包控制在1.4k字节附近,减少通信次数
  • Redis客户端的Get/Set操作平均耗时200~600us(含往返网络通信),以此为参考评估网络环境和Redis客户端组件
  • 使用管道Pipeline合并一批命令
  • Redis的主要性能瓶颈是序列化、网络带宽和内存大小,滥用时处理器也会达到瓶颈
  • 其它可查优化技巧 以上经验,源自于300多个实例4T以上空间一年多稳定工作的经验,并按照重要程度排了先后顺序,可根据场景需要酌情采用!

推荐用法

推荐使用单例模式,Redis内部有连接池并且支持多线程并发访问

public static class RedisHelper
{
    /// <summary>
    /// Redis实例
    /// </summary>
    public static FullRedis redisConnection { get; set; } = new FullRedis("127.0.0.1:6379", "123456", 4);
}

Console.WriteLine(RedisHelper.redisConnection.Keys);

基础 Redis

Redis实现标准协议以及基础字符串操作,完整实现由独立开源项目NewLife.Redis提供。
采取连接池加同步阻塞架构,具有超低延迟(200~600us)以及超高吞吐量的特点。
在物流行业大数据实时计算中广泛应有,经过日均100亿次调用量验证。

// 实例化Redis,默认端口6379可以省略,密码有两种写法
//var rds = new FullRedis("127.0.0.1", null, 7);
var rds = new FullRedis("127.0.0.1:6379", "pass", 7);
//var rds = new FullRedis();
//rds.Init("server=127.0.0.1:6379;password=pass;db=7");
rds.Log = XTrace.Log;

基本操作

在基本操作之前,我们先做一些准备工作:

  • 新建控制台项目,并在入口函数开头加上 XTrace.UseConsole(); ,这是为了方便查看调试日志
  • 具体测试代码之前,需要加上前面MemoryCache或Redis的实例化代码
  • 准备一个模型类User
class User
{
    public String Name { get; set; }
    public DateTime CreateTime { get; set; }
}

添删改查:

var rds = new FullRedis("127.0.0.1", null, 7);
rds.Log = XTrace.Log;
rds.ClientLog = XTrace.Log; // 调试日志。正式使用时注释
var user = new User { Name = "NewLife", CreateTime = DateTime.Now };
rds.Set("user", user, 3600);
var user2 = rds.Get<User>("user");
XTrace.WriteLine("Json: {0}", user2.ToJson());
XTrace.WriteLine("Json: {0}", rds.Get<String>("user"));
if (rds.ContainsKey("user")) XTrace.WriteLine("存在!");
rds.Remove("user");

执行结果:

14:14:25.990  1 N - SELECT 7
14:14:25.992  1 N - => OK
14:14:26.008  1 N - SETEX user 3600 [53]
14:14:26.021  1 N - => OK
14:14:26.042  1 N - GET user
14:14:26.048  1 N - => [53]
14:14:26.064  1 N - GET user
14:14:26.065  1 N - => [53]
14:14:26.066  1 N - Json: {"Name":"NewLife","CreateTime":"2018-09-25 14:14:25"}
14:14:26.067  1 N - EXISTS user
14:14:26.068  1 N - => 1
14:14:26.068  1 N - 存在!
14:14:26.069  1 N - DEL user
14:14:26.070  1 N - => 1

保存复杂对象时,默认采用Json序列化,所以上面可以按字符串把结果取回来,发现正是Json字符串。
Redis的strings,实质上就是带有长度前缀的二进制数据,[53]表示一段53字节长度的二进制数据。

集合操作

GetAll/SetAll 在Redis上是很常用的批量操作,同时获取或设置多个key,一般有10倍以上吞吐量。

批量操作:

var rds = new FullRedis("127.0.0.1", null, 7);
rds.Log = XTrace.Log;
rds.ClientLog = XTrace.Log; // 调试日志。正式使用时注释
var dic = new Dictionary<String, Object>
{
    ["name"] = "NewLife",
    ["time"] = DateTime.Now,
    ["count"] = 1234
};
rds.SetAll(dic, 120);

var vs = rds.GetAll<String>(dic.Keys);
XTrace.WriteLine(vs.Join(",", e => $"{e.Key}={e.Value}"));

执行结果:

MSET name NewLife time 2018-09-25 15:56:26 count 1234
=> OK
EXPIRE name 120
EXPIRE time 120
EXPIRE count 120
MGET name time count
name=NewLife,time=2018-09-25 15:56:26,count=1234

集合操作里面还有 GetList/GetDictionary/GetQueue/GetSet 四个类型集合,分别代表Redis的列表、哈希、队列、Set集合等。
基础版Redis不支持这四个集合,完整版NewLife.Redis支持,MemoryCache则直接支持。

高级操作

  • Add 添加,当key不存在时添加,已存在时返回false。
  • Replace 替换,替换已有值为新值,返回旧值。
  • Increment 累加,原子操作
  • Decrement 递减,原子操作

高级操作:

var rds = new FullRedis("127.0.0.1", null, 7);
rds.Log = XTrace.Log;
rds.ClientLog = XTrace.Log; // 调试日志。正式使用时注释
var flag = rds.Add("count", 5678);
XTrace.WriteLine(flag ? "Add成功" : "Add失败");
var ori = rds.Replace("count", 777);
var count = rds.Get<Int32>("count");
XTrace.WriteLine("count由{0}替换为{1}", ori, count);

rds.Increment("count", 11);
var count2 = rds.Decrement("count", 10);
XTrace.WriteLine("count={0}", count2);

执行结果:

SETNX count 5678
=> 0
Add失败
GETSET count 777
=> 1234
GET count
=> 777
count由1234替换为777
INCRBY count 11
=> 788
DECRBY count 10
=> 778
count=778

性能测试

Bench 会分根据线程数分多组进行添删改压力测试。
rand 参数,是否随机产生key/value。
batch 批大小,分批执行读写操作,借助GetAll/SetAll进行优化。

Redis默认设置AutoPipeline=100,无分批时打开管道操作,对添删改优化。

Redis的兄弟姐妹

Redis实现ICache接口,它的孪生兄弟MemoryCache,内存缓存,千万级吞吐率。
各应用强烈建议使用ICache接口编码设计,小数据时使用MemoryCache实现;
数据增大(10万)以后,改用Redis实现,不需要修改业务代码。

Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 is compatible. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 is compatible. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.91.2024.925-beta0644 27 9/25/2024
3.91.2024.923-beta0226 56 9/23/2024
3.91.2024.922-beta0349 63 9/22/2024
3.9.2024.9210003 61 9/21/2024
3.9.2024.9210002 65 9/21/2024
3.8.2024.922-beta0347 56 9/22/2024
3.8.2024.921-beta0953 62 9/21/2024
3.8.2024.920-beta0130 75 9/20/2024
3.8.2024.919-beta0806 71 9/19/2024
3.8.2024.918-beta1131 68 9/18/2024
3.8.2024.918-beta0923 53 9/18/2024
3.8.2024.918-beta0917 55 9/18/2024
3.8.2024.913-beta0631 90 9/13/2024
3.8.2024.911-beta1434 100 9/11/2024
3.8.2024.907-beta0155 98 9/7/2024
3.8.2024.903-beta0542 82 9/3/2024
3.8.2024.828-beta0703 94 8/28/2024
3.8.2024.828-beta0135 78 8/28/2024
3.8.2024.828-beta0131 81 8/28/2024
3.8.2024.828-beta0130 70 8/28/2024
3.8.2024.828-beta0122 66 8/28/2024
3.8.2024.828-beta0120 71 8/28/2024
3.8.2024.828-beta0111 69 8/28/2024
3.8.2024.828-beta0109 72 8/28/2024
3.7.2024.826-beta0225 91 8/26/2024
3.7.2024.821-beta0308 110 8/21/2024
3.7.2024.820 118 8/20/2024
3.7.2024.820-beta0628 93 8/20/2024
3.7.2024.819-beta1255 93 8/19/2024
3.6.2024.8160165 108 8/16/2024
3.6.2024.8150164 111 8/15/2024
3.6.2024.8140163 104 8/14/2024
3.6.2024.8140162 98 8/14/2024
3.6.2024.8140161 106 8/14/2024
3.6.2024.8130160 105 8/13/2024
3.6.2024.8130159 102 8/13/2024
3.6.2024.8130158 98 8/13/2024
3.6.2024.8130156 112 8/13/2024
3.6.2024.8130155 105 8/13/2024
3.6.2024.8120153 98 8/12/2024
3.6.2024.8120151 96 8/12/2024
3.6.2024.8110150 95 8/11/2024
3.6.2024.8100148 96 8/10/2024
3.6.2024.8100147 98 8/9/2024
3.6.2024.8090146 90 8/9/2024
3.6.2024.8090145 95 8/9/2024
3.6.2024.8080141 83 8/8/2024
3.6.2024.8070140 81 8/7/2024
3.6.2024.8070139 77 8/7/2024
3.6.2024.8070138 83 8/7/2024
3.6.2024.8050137 48 8/5/2024
3.6.2024.8050135 49 8/5/2024
3.6.2024.8040133 56 8/4/2024
3.6.2024.8030132 46 8/3/2024
3.6.2024.8020131 50 8/2/2024
3.6.2024.8010128 66 8/1/2024
3.6.2024.7310126 48 7/31/2024
3.6.2024.7300125 53 7/30/2024
3.6.2024.7290124 76 7/29/2024
3.6.2024.7270123 72 7/27/2024
3.6.2024.7260122 81 7/26/2024
3.6.2024.7240120 75 7/24/2024
3.6.2024.7230119 67 7/23/2024
3.6.2024.7220118 105 7/22/2024
3.6.2024.7220114 78 7/22/2024
3.6.2024.7220113 81 7/22/2024
3.6.2024.7190112 86 7/19/2024
3.6.2024.7190111 80 7/19/2024
3.6.2024.7180110 80 7/18/2024
3.6.2024.7170109 90 7/17/2024
3.6.2024.7160108 87 7/16/2024
3.6.2024.7160107 88 7/16/2024
3.6.2024.7150106 87 7/15/2024
3.6.2024.7150105 86 7/15/2024
3.6.2024.7130104 94 7/13/2024
3.6.2024.7130103 86 7/13/2024
3.6.2024.7120102 87 7/12/2024
3.6.2024.7110101 89 7/11/2024
3.6.2024.7100100 75 7/10/2024
3.6.2024.7090099 80 7/9/2024
3.6.2024.7090098 87 7/9/2024
3.6.2024.7090097 68 7/9/2024
3.6.2024.7090096 92 7/8/2024
3.6.2024.7080095 87 7/8/2024
3.6.2024.7080094 75 7/8/2024
3.6.2024.7080091 85 7/8/2024
3.6.2024.7050090 111 7/5/2024
3.6.2024.7040089 96 7/4/2024
3.6.2024.7030088 99 7/3/2024
3.6.2024.7020087 75 7/2/2024
3.6.2024.7020086 102 7/2/2024
3.6.2024.7010085 89 7/1/2024
3.6.2024.7010084 85 7/1/2024
3.6.2024.6290083 96 6/29/2024
3.6.2024.6280082 93 6/28/2024
3.6.2024.6270081 85 6/27/2024
3.6.2024.6260080 85 6/26/2024
3.6.2024.6250079 84 6/25/2024
3.6.2024.6250078 86 6/25/2024
3.6.2024.6250077 94 6/24/2024
3.6.2024.6240076 87 6/24/2024
3.6.2024.6240075 91 6/24/2024
3.6.2024.6200074 97 6/20/2024
3.6.2024.6190073 98 6/19/2024
3.6.2024.6180072 107 6/18/2024
3.6.2024.6170071 90 6/17/2024
3.6.2024.6150070 84 6/15/2024
3.6.2024.6140069 83 6/14/2024
3.6.2024.6130068 93 6/13/2024
3.6.2024.6130067 82 6/13/2024
3.6.2024.6120062 78 6/12/2024
3.6.2024.6120061 84 6/12/2024
3.6.2024.6110060 89 6/11/2024
3.6.2024.6090059 97 6/9/2024
3.6.2024.6060058 101 6/6/2024
3.6.2024.6050057 109 6/5/2024
3.6.2024.6040056 100 6/4/2024
3.6.2024.6030055 75 6/3/2024
3.6.2024.5310054 98 5/31/2024
3.6.2024.5300053 88 5/30/2024
3.6.2024.5290052 105 5/29/2024
3.6.2024.5290051 93 5/29/2024
3.6.2024.5280050 89 5/28/2024
3.6.2024.5270049 89 5/27/2024
3.6.2024.5250048 97 5/25/2024
3.6.2024.5250047 94 5/25/2024
3.6.2024.5240046 93 5/24/2024
3.6.2024.5240045 94 5/24/2024
3.6.2024.5240044 97 5/24/2024
3.6.2024.5240043 92 5/24/2024
3.6.2024.5230039 86 5/23/2024
3.6.2024.5230038 92 5/23/2024
3.6.2024.5230037 96 5/23/2024
3.6.2024.5220036 88 5/23/2024
3.6.2024.5220035 89 5/22/2024
3.6.2024.5220034 91 5/22/2024
3.6.2024.5210033 90 5/21/2024
3.6.2024.5210032 90 5/21/2024
3.6.2024.5200031 66 5/20/2024
3.6.2024.5170030 74 5/17/2024
3.6.2024.5160029 70 5/16/2024
3.6.2024.5160028 69 5/16/2024
3.6.2024.5150027 94 5/15/2024
3.6.2024.5140026 74 5/14/2024
3.6.2024.5130025 94 5/13/2024
3.6.2024.5130024 97 5/13/2024
3.6.2024.5110024 95 5/11/2024
3.6.2024.5110023 94 5/11/2024
3.6.2024.5110022 96 5/11/2024
3.6.2024.5100021 101 5/10/2024
3.6.2024.5100020 93 5/10/2024
3.6.2024.5090019 119 5/9/2024
3.6.2024.5080018 98 5/8/2024
3.6.2024.5080017 107 5/8/2024
3.6.2024.5070016 109 5/7/2024
3.6.2024.5060014 97 5/6/2024
3.6.2024.5060010 116 5/6/2024
3.6.2024.5050009 103 5/5/2024
3.6.2024.4290008 90 4/29/2024
3.6.2024.4280007 84 4/28/2024
3.6.2024.4280006 93 4/28/2024
3.6.2024.4260005 90 4/26/2024
3.6.2024.4260004 88 4/26/2024
3.6.2024.4250003 86 4/25/2024
3.6.2024.4250002 102 4/25/2024
3.6.2024.4240001 100 4/24/2024
3.5.2024.4230239 96 4/23/2024
3.5.2024.4220237 102 4/22/2024
3.5.2024.4210236 102 4/21/2024
3.5.2024.4200235 103 4/20/2024
3.5.2024.4190232 102 4/19/2024
3.5.2024.4180230 105 4/18/2024
3.5.2024.4180229 95 4/18/2024
3.5.2024.4170228 121 4/17/2024
3.5.2024.4170226 99 4/17/2024
3.5.2024.4170225 109 4/17/2024
3.5.2024.4160223 104 4/16/2024
3.5.2024.4150222 101 4/15/2024
3.5.2024.4130221 92 4/18/2024
3.5.2024.4110220 95 4/12/2024
3.5.2024.4110219 112 4/12/2024
3.5.2024.4100218 101 4/10/2024
3.5.2024.4100217 108 4/10/2024
3.5.2024.4100216 101 4/10/2024
3.5.2024.4090215 107 4/9/2024
3.5.2024.4080214 103 4/8/2024
3.5.2024.4070213 113 4/7/2024
3.5.2024.4020210 105 4/2/2024
3.5.2024.4020209 113 4/2/2024
3.5.2024.4010208 98 4/1/2024
3.5.2024.3300207 112 3/30/2024
3.5.2024.3300206 94 3/30/2024
3.5.2024.3300205 102 3/30/2024
3.5.2024.3290204 98 3/29/2024
3.5.2024.3280203 101 3/28/2024
3.5.2024.3270202 92 3/27/2024
3.5.2024.3270201 104 3/27/2024
3.5.2024.3250200 109 3/25/2024
3.5.2024.3220198 113 3/22/2024
3.5.2024.3210197 111 3/21/2024
3.5.2024.3200196 127 3/20/2024
3.5.2024.3190195 107 3/19/2024
3.5.2024.3180194 94 3/18/2024
3.5.2024.3170192 96 3/17/2024
3.5.2024.3160191 91 3/16/2024
3.5.2024.3150190 103 3/15/2024
3.5.2024.3130189 102 3/13/2024
3.5.2024.3110188 108 3/11/2024
3.5.2024.3100187 119 3/10/2024
3.5.2024.3100186 101 3/10/2024
3.5.2024.3100185 97 3/10/2024
3.5.2024.3070184 109 3/7/2024
3.5.2024.3070183 105 3/7/2024
3.5.2024.3070179 101 3/7/2024
3.5.2024.3070178 92 3/7/2024
3.5.2024.3060177 102 3/6/2024
3.5.2024.3050175 110 3/5/2024
3.5.2024.3040174 105 3/4/2024
3.5.2024.3040173 113 3/4/2024
3.5.2024.3020172 112 3/2/2024
3.5.2024.3020171 117 3/2/2024
3.5.2024.3020170 116 3/4/2024
3.5.2024.3020169 110 3/2/2024
3.5.2024.3020168 105 3/2/2024
3.5.2024.3020167 108 3/2/2024
3.5.2024.3020166 107 3/2/2024
3.5.2024.3010165 126 3/1/2024
3.5.2024.2290164 110 2/29/2024
3.5.2024.2290163 97 2/29/2024
3.5.2024.2290161 111 2/29/2024
3.5.2024.2280159 97 2/28/2024
3.5.2024.2270157 93 2/27/2024
3.5.2024.2230155 109 2/23/2024
3.5.2024.2210153 110 2/21/2024
3.5.2024.2190152 105 2/19/2024
3.5.2024.2180150 106 2/18/2024
3.5.2024.2170148 111 2/18/2024
3.5.2024.1280144 129 1/28/2024
3.5.2024.1280143 99 1/28/2024
3.5.2024.1260143 106 2/18/2024
3.5.2024.1260142 100 1/26/2024
3.5.2024.1240139 112 1/24/2024
3.5.2024.1240136 112 1/24/2024
3.5.2024.1240135 109 1/24/2024
3.5.2024.1240132 110 1/24/2024
3.5.2024.1230131 104 1/23/2024
3.5.2024.1230130 98 1/23/2024
3.5.2024.1220129 108 1/22/2024
3.5.2024.1190128 111 1/19/2024
3.5.2024.1180124 102 1/18/2024
3.5.2024.1170123 104 1/18/2024
3.5.2024.1160122 107 1/16/2024
3.5.2024.1160121 110 1/16/2024
3.5.2024.1150119 127 1/15/2024
3.5.2024.1150118 122 1/15/2024
3.5.2024.1150117 109 1/15/2024
3.5.2024.1150116 119 1/15/2024
3.5.2024.1150115 112 1/15/2024
3.5.2024.1150114 112 1/14/2024
3.4.2024.1120104 122 1/12/2024
3.4.2024.1120103 114 1/12/2024
3.4.2024.1120102 104 1/12/2024
3.4.2024.1120100 109 1/12/2024
3.4.2024.1120099 112 1/12/2024
3.4.2024.1120098 122 1/12/2024
3.4.2024.1120096 112 1/12/2024
3.4.2024.1120095 112 1/11/2024
3.4.2024.1110094 125 1/11/2024
3.4.2024.1110093 127 1/11/2024
3.4.2024.1100092 117 1/10/2024
3.4.2024.1090091 109 1/9/2024
3.4.2024.1080090 120 1/8/2024
3.4.2024.1080089 127 1/8/2024
3.4.2024.1060088 130 1/6/2024
3.4.2024.1040086 122 1/4/2024
3.4.2024.1030085 124 1/3/2024
3.4.2024.1030084 127 1/3/2024
3.4.2024.1030083 128 1/3/2024
3.4.2024.1020082 113 1/2/2024
3.4.2024.1020081 116 1/2/2024
3.4.2024.1020080 122 1/2/2024
3.4.2023.12290079 116 12/29/2023
3.4.2023.12280078 135 12/28/2023
3.4.2023.12280077 126 12/28/2023
3.4.2023.12270076 109 12/27/2023
3.4.2023.12270075 122 12/27/2023
3.4.2023.12260068 129 12/26/2023
3.4.2023.12220067 127 12/22/2023
3.4.2023.12200066 119 12/20/2023
3.4.2023.12200065 112 12/20/2023
3.4.2023.12190064 126 12/19/2023
3.4.2023.12180061 131 12/18/2023
3.4.2023.12180060 128 12/18/2023
3.4.2023.12150059 134 12/15/2023
3.4.2023.12140058 144 12/14/2023
3.4.2023.12140054 135 12/14/2023
3.4.2023.12140053 132 12/14/2023
3.4.2023.12130052 113 12/13/2023
3.4.2023.12130051 130 12/13/2023
3.4.2023.12120050 126 12/12/2023
3.4.2023.12120049 116 12/12/2023
3.4.2023.12120046 127 12/12/2023
3.4.2023.12100045 140 12/10/2023
3.4.2023.12080044 140 12/8/2023
3.4.2023.12040041 150 12/3/2023
3.4.2023.12020040 150 12/2/2023
3.4.2023.12010038 156 12/1/2023
3.4.2023.12010037 143 12/1/2023
3.4.2023.11300034 138 11/30/2023
3.4.2023.11280033 152 11/28/2023
3.4.2023.11280032 140 11/28/2023
3.4.2023.11280031 143 11/28/2023
3.4.2023.11260030 142 11/26/2023
3.4.2023.11250029 153 11/25/2023
3.4.2023.11230026 130 11/23/2023
3.4.2023.11230008 147 11/23/2023
3.4.2023.11220007 135 11/22/2023
3.4.2023.11220005 132 11/22/2023
3.4.2023.11170004 141 11/17/2023
3.4.2023.11160003 139 11/16/2023
3.4.2023.11150002 135 11/15/2023
3.4.2023.11150001 132 11/15/2023
3.4.2023.1115-beta0001 112 11/15/2023
3.3.2023.1114-beta0072 69 11/14/2023
3.3.2023.1113-beta0071 62 11/13/2023
3.3.2023.1113-beta0066 62 11/13/2023
3.3.2023.1110-beta0065 62 11/10/2023
3.3.2023.1108-beta0064 63 11/8/2023
3.3.2023.1108-beta0063 64 11/8/2023
3.3.2023.1106-beta0061 75 11/6/2023
3.3.2023.1103-beta0060 78 11/3/2023
3.3.2023.1102-beta0058 72 11/23/2023
3.3.2023.1102-beta0057 69 11/2/2023
3.3.2023.1102-beta0051 65 11/2/2023
3.3.2023.1102-beta0049 76 11/2/2023

新增数据保护IDataProtection