DH.NRedis.Extensions 3.8.2024.907-beta0155

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.8.2024.907-beta0155                
NuGet\Install-Package DH.NRedis.Extensions -Version 3.8.2024.907-beta0155                
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.8.2024.907-beta0155" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DH.NRedis.Extensions --version 3.8.2024.907-beta0155                
#r "nuget: DH.NRedis.Extensions, 3.8.2024.907-beta0155"                
#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.8.2024.907-beta0155&prerelease

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

新增数据保护IDataProtection