DH.NRedis.Extensions 4.0.2024.1114-beta0608

# 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实现,不需要修改业务代码。

No packages depend on DH.NRedis.Extensions.

新增数据保护IDataProtection

.NET Core 3.1

.NET 5.0

.NET 6.0

.NET 7.0

.NET 8.0

.NET 9.0

.NET Standard 2.0

.NET Standard 2.1

Version Downloads Last updated
4.16.2025.1206-beta0335 0 2025/12/6
4.16.2025.1121-beta0114 0 2025/11/21
4.16.2025.1121-beta0113 0 2025/11/21
4.16.2025.1113 2 2025/11/19
4.16.2025.1113-beta0655 1 2025/11/19
4.14.2025.1025-beta0126 1 2025/11/10
4.14.2025.1002-beta0342 1 2025/10/9
4.14.2025.926-beta1325 1 2025/9/28
4.14.2025.926-beta1323 0 2025/9/26
4.14.2025.826-beta0407 1 2025/9/11
4.14.2025.818-beta0742 0 2025/8/18
4.14.2025.818-beta0740 0 2025/8/18
4.14.2025.802 2 2025/8/5
4.14.2025.802-beta0756 0 2025/8/2
4.13.2025.802-beta0754 0 2025/8/2
4.13.2025.725-beta0547 1 2025/7/29
4.13.2025.713-beta1514 3 2025/7/15
4.13.2025.701-beta0850 3 2025/7/7
4.12.2025.630-beta1209 1 2025/7/1
4.12.2025.630-beta1207 0 2025/6/30
4.12.2025.630-beta1206 0 2025/6/30
4.12.2025.630-beta1201 0 2025/6/30
4.12.2025.619-beta1116 2 2025/6/23
4.12.2025.619-beta1103 0 2025/6/19
4.12.2025.619-beta1010 0 2025/6/19
4.12.2025.619-beta1006 0 2025/6/19
4.12.2025.530-beta0630 2 2025/6/3
4.12.2025.514-beta0916 0 2025/5/14
4.12.2025.506 0 2025/5/6
4.12.2025.506-beta1219 0 2025/5/6
4.12.2025.506-beta1216 0 2025/5/6
4.12.2025.506-beta1215 0 2025/5/6
4.12.2025.506-beta1214 0 2025/5/6
4.12.2025.506-beta1212 0 2025/5/6
4.11.2025.506-beta1208 0 2025/5/6
4.11.2025.506-beta1205 0 2025/5/6
4.11.2025.428-beta0235 0 2025/4/28
4.11.2025.423-beta1129 2 2025/6/9
4.11.2025.423-beta1126 0 2025/4/23
4.11.2025.412 2 2025/8/3
4.11.2025.412-beta1008 0 2025/4/12
4.11.2025.412-beta1006 0 2025/4/12
4.11.2025.329-beta0412 3 2025/7/10
4.11.2025.329-beta0409 0 2025/3/29
4.11.2025.329-beta0359 0 2025/3/29
4.11.2025.328-beta1004 0 2025/3/28
4.11.2025.314-beta1134 1 2025/7/15
4.11.2025.311-beta0606 0 2025/3/11
4.11.2025.303 0 2025/3/3
4.11.2025.303-beta0309 0 2025/3/3
4.1.2025.227-beta0815 0 2025/2/27
4.1.2025.227-beta0814 0 2025/2/27
4.1.2025.227-beta0809 0 2025/2/27
4.1.2025.217-beta0712 0 2025/2/17
4.1.2025.210-beta0139 0 2025/2/10
4.1.2025.205-beta0608 0 2025/2/5
4.1.2025.115-beta0812 0 2025/1/15
4.1.2025.114-beta0211 0 2025/1/14
4.1.2025.110-beta0204 0 2025/1/10
4.1.2025.110-beta0203 0 2025/1/10
4.0.2025.110-beta0153 0 2025/1/10
4.0.2025.103 0 2025/1/3
4.0.2025.103-beta0347 0 2025/1/3
4.0.2024.1231-beta0940 0 2024/12/31
4.0.2024.1226-beta0336 0 2024/12/26
4.0.2024.1213-beta1019 0 2024/12/13
4.0.2024.1206-beta0112 0 2024/12/6
4.0.2024.1204-beta0337 0 2024/12/4
4.0.2024.1201-beta0334 0 2024/12/1
4.0.2024.1126-beta0234 0 2024/11/26
4.0.2024.1123-beta0939 0 2024/11/23
4.0.2024.1119-beta0731 2 2025/6/10
4.0.2024.1114-beta0650 1 2025/8/21
4.0.2024.1114-beta0608 1 2025/8/21
3.91.2024.1112-beta0844 0 2024/11/12
3.91.2024.1109-beta0248 0 2024/11/9
3.91.2024.1104-beta0356 0 2024/11/4
3.91.2024.1101-beta0242 0 2024/11/1
3.91.2024.1031 0 2024/10/31
3.91.2024.1031-beta1112 0 2024/10/31
3.91.2024.1031-beta1107 0 2024/10/31
3.91.2024.1031-beta1106 0 2024/10/31
3.91.2024.1021-beta0734 0 2024/10/21
3.91.2024.1021-beta0725 0 2024/10/21
3.91.2024.1015-beta1006 0 2024/10/15
3.91.2024.1015-beta0956 0 2024/10/15
3.91.2024.1013-beta0832 0 2024/10/13
3.91.2024.1012-beta0303 0 2024/10/12
3.91.2024.1010-beta0633 0 2024/10/10
3.91.2024.1008-beta0919 0 2024/10/8
3.91.2024.1008-beta0342 0 2024/10/8
3.91.2024.1008-beta0328 0 2024/10/8
3.91.2024.1008-beta0321 0 2024/10/8
3.91.2024.925-beta0644 0 2024/9/25
3.91.2024.923-beta0226 0 2024/9/23
3.91.2024.922-beta0349 0 2024/9/22
3.9.2024.9210003 0 2024/9/21
3.9.2024.9210002 0 2024/9/21
3.8.2024.922-beta0347 0 2024/9/22
3.8.2024.921-beta0953 0 2024/9/21
3.8.2024.920-beta0130 0 2024/9/20
3.8.2024.919-beta0806 0 2024/9/19
3.8.2024.918-beta1131 0 2024/9/18
3.8.2024.918-beta0923 0 2024/9/18
3.8.2024.918-beta0917 0 2024/9/18
3.8.2024.913-beta0631 0 2024/9/13
3.8.2024.911-beta1434 0 2024/9/11
3.8.2024.907-beta0155 0 2024/9/7
3.8.2024.903-beta0542 0 2024/9/3
3.8.2024.828-beta0703 0 2024/8/28
3.8.2024.828-beta0135 0 2024/8/28
3.8.2024.828-beta0131 0 2024/8/28
3.8.2024.828-beta0130 0 2024/8/28
3.8.2024.828-beta0122 0 2024/8/28
3.8.2024.828-beta0120 0 2024/8/28
3.8.2024.828-beta0111 2 2025/6/10
3.8.2024.828-beta0109 0 2024/8/28
3.7.2024.826-beta0225 0 2024/8/26
3.7.2024.821-beta0308 0 2024/8/21
3.7.2024.820 0 2024/8/20
3.7.2024.820-beta0628 0 2024/8/20
3.7.2024.819-beta1255 0 2024/8/19
3.6.2024.8160165 0 2024/8/16
3.6.2024.8150164 0 2024/8/15
3.6.2024.8140163 0 2024/8/14
3.6.2024.8140162 0 2024/8/14
3.6.2024.8140161 1 2025/7/15
3.6.2024.8130160 0 2024/8/13
3.6.2024.8130159 0 2024/8/13
3.6.2024.8130158 0 2024/8/13
3.6.2024.8130156 0 2024/8/13
3.6.2024.8130155 0 2024/8/13
3.6.2024.8120153 0 2024/8/12
3.6.2024.8120151 0 2024/8/12
3.6.2024.8110150 0 2024/8/11
3.6.2024.8100148 0 2024/8/10
3.6.2024.8100147 0 2024/8/9
3.6.2024.8090146 0 2024/8/9
3.6.2024.8090145 0 2024/8/9
3.6.2024.8080141 0 2024/8/8
3.6.2024.8070140 0 2024/8/7
3.6.2024.8070139 0 2024/8/7
3.6.2024.8070138 0 2024/8/7
3.6.2024.8050137 0 2024/8/5
3.6.2024.8050135 0 2024/8/5
3.6.2024.8040134 0 2024/12/13
3.6.2024.8040133 0 2024/8/4
3.6.2024.8030132 0 2024/8/3
3.6.2024.8020131 0 2024/8/2
3.6.2024.8010128 0 2024/8/1
3.6.2024.7310126 0 2024/7/31
3.6.2024.7300125 0 2024/7/30
3.6.2024.7290124 0 2024/7/29
3.6.2024.7270123 0 2024/7/27
3.6.2024.7260122 0 2024/7/26
3.6.2024.7240120 0 2024/7/24
3.6.2024.7230119 0 2024/7/23
3.6.2024.7220118 0 2024/7/22
3.6.2024.7220114 0 2024/7/22
3.6.2024.7220113 0 2024/7/22
3.6.2024.7190112 0 2024/7/19
3.6.2024.7190111 0 2024/7/19
3.6.2024.7180110 0 2024/7/18
3.6.2024.7170109 0 2024/7/17
3.6.2024.7160108 0 2024/7/16
3.6.2024.7160107 0 2024/7/16
3.6.2024.7150106 0 2024/7/15
3.6.2024.7150105 0 2024/7/15
3.6.2024.7130104 0 2024/7/13
3.6.2024.7130103 0 2024/7/13
3.6.2024.7120102 0 2024/7/12
3.6.2024.7110101 0 2024/7/11
3.6.2024.7100100 0 2024/7/10
3.6.2024.7090099 0 2024/7/9
3.6.2024.7090098 0 2024/7/9
3.6.2024.7090097 0 2024/7/9
3.6.2024.7090096 0 2024/7/8
3.6.2024.7080095 0 2024/7/8
3.6.2024.7080094 0 2024/7/8
3.6.2024.7080091 0 2024/7/8
3.6.2024.7050090 0 2024/7/5
3.6.2024.7040089 0 2024/7/4
3.6.2024.7030088 0 2024/7/3
3.6.2024.7020087 0 2024/7/2
3.6.2024.7020086 0 2024/7/2
3.6.2024.7010085 0 2024/7/1
3.6.2024.7010084 0 2024/7/1
3.6.2024.6290083 0 2024/6/29
3.6.2024.6280082 0 2024/6/28
3.6.2024.6270081 0 2024/6/27
3.6.2024.6260080 0 2024/6/26
3.6.2024.6250079 0 2024/6/25
3.6.2024.6250078 0 2024/6/25
3.6.2024.6250077 0 2024/6/24
3.6.2024.6240076 0 2024/6/24
3.6.2024.6240075 0 2024/6/24
3.6.2024.6200074 0 2024/6/20
3.6.2024.6190073 0 2024/6/19
3.6.2024.6180072 0 2024/6/18
3.6.2024.6170071 0 2024/6/17
3.6.2024.6150070 0 2024/6/15
3.6.2024.6140069 0 2024/6/14
3.6.2024.6130068 0 2024/6/13
3.6.2024.6130067 0 2024/6/13
3.6.2024.6120062 0 2024/6/12
3.6.2024.6120061 0 2024/6/12
3.6.2024.6110060 0 2024/6/11
3.6.2024.6090059 0 2024/6/9
3.6.2024.6060058 0 2024/6/6
3.6.2024.6050057 0 2024/6/5
3.6.2024.6040056 0 2024/6/4
3.6.2024.6030055 0 2024/6/3
3.6.2024.5310054 0 2024/5/31
3.6.2024.5300053 0 2024/5/30
3.6.2024.5290052 0 2024/5/29
3.6.2024.5290051 0 2024/5/29
3.6.2024.5280050 0 2024/5/28
3.6.2024.5270049 0 2024/5/27
3.6.2024.5250048 0 2024/5/25
3.6.2024.5250047 0 2024/5/25
3.6.2024.5240046 0 2024/5/24
3.6.2024.5240045 0 2024/5/24
3.6.2024.5240044 0 2024/5/24
3.6.2024.5240043 0 2024/5/24
3.6.2024.5230039 0 2024/5/23
3.6.2024.5230038 0 2024/5/23
3.6.2024.5230037 0 2024/5/23
3.6.2024.5220036 0 2024/5/23
3.6.2024.5220035 0 2024/5/22
3.6.2024.5220034 0 2024/5/22
3.6.2024.5210033 0 2024/5/21
3.6.2024.5210032 0 2024/5/21
3.6.2024.5200031 0 2024/5/20
3.6.2024.5170030 0 2024/5/17
3.6.2024.5160029 0 2024/5/16
3.6.2024.5160028 0 2024/5/16
3.6.2024.5150027 0 2024/5/15
3.6.2024.5140026 0 2024/5/14
3.6.2024.5130025 0 2024/5/13
3.6.2024.5130024 0 2024/5/13
3.6.2024.5110024 0 2024/5/11
3.6.2024.5110023 0 2024/5/11
3.6.2024.5110022 0 2024/5/11
3.6.2024.5100021 0 2024/5/10
3.6.2024.5100020 0 2024/5/10
3.6.2024.5090019 0 2024/5/9
3.6.2024.5080018 0 2024/5/8
3.6.2024.5080017 0 2024/5/8
3.6.2024.5070016 0 2024/5/7
3.6.2024.5060014 0 2024/5/6
3.6.2024.5060010 0 2024/5/6
3.6.2024.5050009 1 2025/11/4
3.6.2024.4290008 0 2024/4/29
3.6.2024.4280007 0 2024/4/28
3.6.2024.4280006 0 2024/4/28
3.6.2024.4260005 0 2024/4/26
3.6.2024.4260004 0 2024/4/26
3.6.2024.4250003 0 2024/4/25
3.6.2024.4250002 0 2024/4/25
3.6.2024.4240001 0 2024/4/24
3.5.2024.4230239 0 2024/4/23
3.5.2024.4220237 0 2024/4/22
3.5.2024.4210236 0 2024/4/21
3.5.2024.4200235 0 2024/4/20
3.5.2024.4190232 0 2024/4/19
3.5.2024.4180230 0 2024/4/18
3.5.2024.4180229 0 2024/4/18
3.5.2024.4170228 0 2024/4/17
3.5.2024.4170226 0 2024/4/17
3.5.2024.4170225 0 2024/4/17
3.5.2024.4160223 0 2024/4/16
3.5.2024.4150222 0 2024/4/15
3.5.2024.4130221 0 2024/4/18
3.5.2024.4110220 0 2024/4/12
3.5.2024.4110219 0 2024/4/12
3.5.2024.4100218 0 2024/4/10
3.5.2024.4100217 0 2024/4/10
3.5.2024.4100216 0 2024/4/10
3.5.2024.4090215 0 2024/4/9
3.5.2024.4080214 0 2024/4/8
3.5.2024.4070213 0 2024/4/7
3.5.2024.4020210 0 2024/4/2
3.5.2024.4020209 0 2024/4/2
3.5.2024.4010208 0 2024/4/1
3.5.2024.3300207 0 2024/3/30
3.5.2024.3300206 0 2024/3/30
3.5.2024.3300205 0 2024/3/30
3.5.2024.3290204 0 2024/3/29
3.5.2024.3280203 0 2024/3/28
3.5.2024.3270202 0 2024/3/27
3.5.2024.3270201 0 2024/3/27
3.5.2024.3250200 0 2024/3/25
3.5.2024.3220198 0 2024/3/22
3.5.2024.3210197 0 2024/3/21
3.5.2024.3200196 0 2024/3/20
3.5.2024.3190195 0 2024/3/19
3.5.2024.3180194 0 2024/3/18
3.5.2024.3170192 0 2024/3/17
3.5.2024.3160191 0 2024/3/16
3.5.2024.3150190 0 2024/3/15
3.5.2024.3130189 0 2024/3/13
3.5.2024.3110188 0 2024/3/11
3.5.2024.3100187 0 2024/3/10
3.5.2024.3100186 0 2024/3/10
3.5.2024.3100185 0 2024/3/10
3.5.2024.3070184 0 2024/3/7
3.5.2024.3070183 0 2024/3/7
3.5.2024.3070179 0 2024/3/7
3.5.2024.3070178 0 2024/3/7
3.5.2024.3060177 0 2024/3/6
3.5.2024.3050175 0 2024/3/5
3.5.2024.3040174 0 2024/3/4
3.5.2024.3040173 0 2024/3/4
3.5.2024.3020172 0 2024/3/2
3.5.2024.3020171 0 2024/3/2
3.5.2024.3020170 0 2024/3/4
3.5.2024.3020169 0 2024/3/2
3.5.2024.3020168 0 2024/3/2
3.5.2024.3020167 0 2024/3/2
3.5.2024.3020166 0 2024/3/2
3.5.2024.3010165 0 2024/3/1
3.5.2024.2290164 0 2024/2/29
3.5.2024.2290163 0 2024/2/29
3.5.2024.2290161 0 2024/2/29
3.5.2024.2280159 0 2024/2/28
3.5.2024.2270157 0 2024/2/27
3.5.2024.2230155 0 2024/2/23
3.5.2024.2210153 0 2024/2/21
3.5.2024.2190152 0 2024/2/19
3.5.2024.2180150 0 2024/2/18
3.5.2024.2170148 0 2024/2/18
3.5.2024.1280144 1 2025/6/6
3.5.2024.1280143 0 2024/1/28
3.5.2024.1260143 0 2024/2/18
3.5.2024.1260142 1 2025/11/16
3.5.2024.1240139 0 2024/1/24
3.5.2024.1240136 0 2024/1/24
3.5.2024.1240135 0 2024/1/24
3.5.2024.1240132 0 2024/1/24
3.5.2024.1230131 0 2024/1/23
3.5.2024.1230130 0 2024/1/23
3.5.2024.1220129 0 2024/1/22
3.5.2024.1190128 0 2024/1/19
3.5.2024.1180124 0 2024/1/18
3.5.2024.1170123 0 2024/1/18
3.5.2024.1160122 0 2024/1/16
3.5.2024.1160121 0 2024/1/16
3.5.2024.1150119 0 2024/1/15
3.5.2024.1150118 0 2024/1/15
3.5.2024.1150117 0 2024/1/15
3.5.2024.1150116 0 2024/1/15
3.5.2024.1150115 0 2024/1/15
3.5.2024.1150114 0 2024/1/14
3.4.2024.1120104 3 2025/6/7
3.4.2024.1120103 0 2024/1/12
3.4.2024.1120102 0 2024/1/12
3.4.2024.1120100 0 2024/1/12
3.4.2024.1120099 0 2024/1/12
3.4.2024.1120098 0 2024/1/12
3.4.2024.1120096 0 2024/1/12
3.4.2024.1120095 0 2024/1/11
3.4.2024.1110094 0 2024/1/11
3.4.2024.1110093 4 2025/6/7
3.4.2024.1100092 0 2024/1/10
3.4.2024.1090091 0 2024/1/9
3.4.2024.1080090 0 2024/1/8
3.4.2024.1080089 0 2024/1/8
3.4.2024.1060088 0 2024/1/6
3.4.2024.1040086 0 2024/1/4
3.4.2024.1030085 0 2024/1/3
3.4.2024.1030084 0 2024/1/3
3.4.2024.1030083 0 2024/1/3
3.4.2024.1020082 0 2024/1/2
3.4.2024.1020081 0 2024/1/2
3.4.2024.1020080 0 2024/1/2
3.4.2023.12290079 2 2025/7/24
3.4.2023.12280078 0 2023/12/28
3.4.2023.12280077 0 2023/12/28
3.4.2023.12270076 0 2023/12/27
3.4.2023.12270075 0 2023/12/27
3.4.2023.12260068 0 2023/12/26
3.4.2023.12220067 0 2023/12/22
3.4.2023.12200066 0 2023/12/20
3.4.2023.12200065 0 2023/12/20
3.4.2023.12190064 0 2023/12/19
3.4.2023.12180061 0 2023/12/18
3.4.2023.12180060 0 2023/12/18
3.4.2023.12150059 0 2023/12/15
3.4.2023.12140058 0 2023/12/14
3.4.2023.12140054 0 2023/12/14
3.4.2023.12140053 0 2023/12/14
3.4.2023.12130052 0 2023/12/13
3.4.2023.12130051 0 2023/12/13
3.4.2023.12120050 0 2023/12/12
3.4.2023.12120049 0 2023/12/12
3.4.2023.12120046 0 2023/12/12
3.4.2023.12100045 0 2023/12/10
3.4.2023.12080044 0 2023/12/8
3.4.2023.12040041 0 2023/12/3
3.4.2023.12020040 1 2025/8/23
3.4.2023.12010038 0 2023/12/1
3.4.2023.12010037 0 2023/12/1
3.4.2023.11300034 0 2023/11/30
3.4.2023.11280033 0 2023/11/28
3.4.2023.11280032 0 2023/11/28
3.4.2023.11280031 0 2023/11/28
3.4.2023.11260030 0 2023/11/26
3.4.2023.11250029 0 2023/11/25
3.4.2023.11230026 0 2023/11/23
3.4.2023.11230008 1 2025/7/24
3.4.2023.11220007 0 2023/11/22
3.4.2023.11220005 0 2023/11/22
3.4.2023.11170004 0 2023/11/17
3.4.2023.11160003 0 2023/11/16
3.4.2023.11150002 0 2023/11/15
3.4.2023.11150001 0 2023/11/15
3.4.2023.1115-beta0001 1 2025/11/16
3.3.2023.1114-beta0072 1 2025/8/21
3.3.2023.1113-beta0071 1 2025/8/21
3.3.2023.1113-beta0066 1 2025/8/21
3.3.2023.1110-beta0065 1 2025/8/21
3.3.2023.1108-beta0064 0 2023/11/8
3.3.2023.1108-beta0063 0 2023/11/8
3.3.2023.1106-beta0061 0 2023/11/6
3.3.2023.1103-beta0060 0 2023/11/3
3.3.2023.1102-beta0058 0 2023/11/23
3.3.2023.1102-beta0057 0 2023/11/2
3.3.2023.1102-beta0051 0 2023/11/2
3.3.2023.1102-beta0049 0 2023/11/2