智能大石头
|
40f7560753
|
[fix] 外部调用者可能需要直接使用内部申请的OwnerPacket,所以这里不释放
|
2025-03-11 13:22:08 +08:00 |
大石头
|
e4705f8685
|
[fix] 修正Redis响应数据超过8192时,读取出现死循环的问题。close: https://github.com/NewLifeX/NewLife.Redis/issues/149
|
2025-02-08 23:24:52 +08:00 |
大石头
|
5f803cfa50
|
优化非集群模式时ToDictionary使用,减少GC
|
2025-02-02 11:52:00 +08:00 |
大石头
|
1b16e8369d
|
优化字符串数组和Object数组使用,减少GC分配
|
2025-02-02 10:52:23 +08:00 |
智能大石头
|
537a982f41
|
8192
|
2025-01-14 01:46:10 +08:00 |
智能大石头
|
db867557be
|
[feat]实现缓冲读取器BufferedReader,替代BufferedStream。因为BufferedStream内部从堆上分配8192字节内存数组,每一次Redis请求都需要分配一次,带来了大量内存分配和GC成本。
|
2025-01-14 01:23:56 +08:00 |
智能大石头
|
9c55d4e250
|
使用缓冲流BufferedStream包装网络流,加速响应数据读取分析。压测峰值315万每秒,批删除
|
2025-01-10 01:33:42 +08:00 |
智能大石头
|
3129b84dc6
|
v6.1 底层RedisClient恢复同步方法。Redis属于低延时高频操作,在使用异步的过程中,因层次较深,加入了很多个await,编译时创建了很多状态机,运行时加重了线程池负担。在吞吐较大应用中,经星尘监控采样发现,应用线程池每分钟完成数十万个任务,偶尔出现挂起任务,即为线程饥渴,导致asp.net接受http请求等任务,偶尔出现异常。
|
2025-01-10 00:58:04 +08:00 |
大石头
|
2b0f3b131b
|
为了提升性能,在同步调用异步时规避卡UI上下文,所有await状态机都设置ConfigureAwait(false),开启CA2007并视为编译错误。减少不必要的await状态机
|
2024-11-30 23:18:11 +08:00 |
大石头
|
17c82cae2e
|
[fix]修正UI线程卡死问题,在同步调用异步时,取消捕获上下文。同时进行本机压测,并不存在连接数大增的问题。相关讨论:https://github.com/NewLifeX/NewLife.Redis/issues/140 和 https://github.com/NewLifeX/NewLife.Redis/issues/139 以及 https://github.com/NewLifeX/NewLife.Redis/issues/138
|
2024-11-25 20:21:21 +08:00 |
大石头
|
30d611703e
|
v6.0.2024.1006 内存优化,在高并发场合减少内存分配
|
2024-10-07 00:42:01 +08:00 |
智能大石头
|
2921b5aa35
|
trim Null
|
2024-09-25 00:53:43 +08:00 |
智能大石头
|
eaaaebdcd3
|
优化ToHex使用和Pool.Return使用
|
2024-09-24 08:04:47 +08:00 |
智能大石头
|
0b805c32c2
|
ReadLength
|
2024-09-19 08:48:37 +08:00 |
大石头
|
29c4f79584
|
原始数据直接编码进入SpanWriter,不再中途经过IPacket编码转一道
|
2024-09-16 22:00:04 +08:00 |
大石头
|
f73660a3c4
|
使用最终版IPacket优化代码,单元测试通过
|
2024-09-16 19:55:28 +08:00 |
大石头
|
1b6bd444c3
|
Packet数据封包全面替换为IPacket
|
2024-08-30 15:55:51 +08:00 |
智能大石头
|
2d64120f8e
|
引入MemorySegment,解决同时传递IMemoryOwner和有效长度的问题。普通指令已满足要求,更复杂的指令,需要更改原来使用Packet的解析代码
|
2024-08-28 08:33:09 +08:00 |
智能大石头
|
6497cdf009
|
使用IMemoryOwner分配内存池,用于解析响应数据,减少内存分配。内存块已通过IMemoryOwner向上传递,上方取用后释放,但是未能把长度向上传递,可能还需要封装一个结构体。
|
2024-08-28 00:36:19 +08:00 |
智能大石头
|
496da09441
|
减少字典的Resize
|
2024-08-27 22:16:04 +08:00 |
大石头
|
7f7afecbfd
|
完善SpanWriter
|
2024-08-27 20:38:18 +08:00 |
大石头
|
daab2d61ff
|
执行命令前,先把参数Encode编码为字符串或字节数组,方便Span写入。其实绝大部分场景都是字符串。Byte[]分配下降到263M。
|
2024-08-27 13:24:57 +08:00 |
大石头
|
fab8aca6ef
|
限制1M以内数组从缓冲池里面借,更大数组直接分配
|
2024-08-27 10:35:56 +08:00 |
智能大石头
|
ef1ecbecfb
|
采用Span优化Encode,对于字符串,直接编码转换,避免再次分配字节数组。字节数组分配降到772M,现在的问题是,无法准确估算缓冲区大小,导致借出内存过大,产生LOH分配。
|
2024-08-27 02:15:00 +08:00 |
智能大石头
|
d36e34e11b
|
使用Span封装请求,借用内存池
|
2024-08-27 01:51:30 +08:00 |
智能大石头
|
503966ba5f
|
跑Bench压测后分析内存,Byte[]分配2.5G,去掉缓冲流后分配905M;
RedisClient去掉同步方法,主要保留异步方法;
|
2024-08-26 23:36:33 +08:00 |
大石头
|
93cd86e394
|
消费组不存在时,自动创建消费组。可能是Redis重启或者主从切换等原因,导致消费组丢失
|
2024-01-31 23:03:16 +08:00 |
大石头
|
3c934b03dd
|
TrimNull
|
2023-11-25 09:46:34 +08:00 |
大石头
|
3bc4bc2119
|
优化二级命令的埋点名称
|
2023-06-05 12:35:16 +08:00 |
大石头
|
6a55a474c2
|
Merge branch 'master' of https://github.com/NewLifeX/NewLife.Redis
|
2023-05-12 23:36:06 +08:00 |
黎更荣
|
b7c1458c22
|
修复队列获取不到数据的时候会报错 fix #97
|
2023-05-12 18:04:03 +08:00 |
智能大石头
|
a2abe01114
|
先填充已有地址,供外部使用
|
2023-05-12 08:20:36 +08:00 |
大石头
|
8bb3cf295f
|
FullRedis为集群和主从节点准备连接池,避免连接池被反复销毁
|
2023-04-03 20:38:21 +08:00 |
大石头
|
291f8ecde2
|
各个埋点都要捕获异常
|
2023-04-03 17:39:32 +08:00 |
大石头
|
2cd40920cf
|
Redis命令日志独立
|
2023-04-03 17:03:00 +08:00 |
大石头
|
5b762bfd3e
|
升级核心库
|
2023-03-27 09:24:53 +08:00 |
大石头
|
131f94abc6
|
fix: 修正频繁Select的问题
|
2023-03-27 09:22:25 +08:00 |
大石头
|
292f60bf30
|
使用cluster模式时,不执行select
|
2023-03-07 15:42:59 +08:00 |
大石头
|
1fbc419476
|
Redis支持运行过程中更改db;Info不需要SelectDb;哨兵不支持selectdb;
|
2023-03-07 15:03:41 +08:00 |
大石头
|
a55e56d3c0
|
支持根据从节点探索主节点,从而得到全部节点。支持连接字符串内配置有无效节点。
|
2023-03-07 14:37:56 +08:00 |
大石头
|
f984048b70
|
恢复对net45的支持
|
2023-03-06 09:23:05 +08:00 |
大石头
|
8bbe6e33e7
|
v5.1.2023.0203
|
2023-02-03 22:47:57 +08:00 |
大石头
|
da6013bc31
|
支持SSL/TLS连接,支持指定证书验证指纹。fix https://github.com/NewLifeX/NewLife.Redis/issues/91
|
2023-01-06 22:23:14 +08:00 |
智能大石头
|
0871d4e10c
|
恢复net461的支持,增加程序集签名
|
2022-08-13 22:46:51 +08:00 |
智能大石头
|
1c5b740e24
|
v5.0大版本升级,Redis基础类从NewLife.Core迁移到NewLife.Redis
|
2022-08-10 00:14:31 +08:00 |