DH.NRedis.Extensions 3.7.2024.820

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.820                
NuGet\Install-Package DH.NRedis.Extensions -Version 3.7.2024.820                
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.820" />                
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.820                
#r "nuget: DH.NRedis.Extensions, 3.7.2024.820"                
#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.820

// Install DH.NRedis.Extensions as a Cake Tool
#tool nuget:?package=DH.NRedis.Extensions&version=3.7.2024.820                

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

新增数据保护IDataProtection