DH.NRedis.Extensions 3.8.2024.828-beta0135

# 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 Standard 2.1

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