NewLife.Redis.Extensions 6.5.2026.303

There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package NewLife.Redis.Extensions --version 6.5.2026.303
                    
NuGet\Install-Package NewLife.Redis.Extensions -Version 6.5.2026.303
                    
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="NewLife.Redis.Extensions" Version="6.5.2026.303" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NewLife.Redis.Extensions" Version="6.5.2026.303" />
                    
Directory.Packages.props
<PackageReference Include="NewLife.Redis.Extensions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add NewLife.Redis.Extensions --version 6.5.2026.303
                    
#r "nuget: NewLife.Redis.Extensions, 6.5.2026.303"
                    
#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.
#:package NewLife.Redis.Extensions@6.5.2026.303
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=NewLife.Redis.Extensions&version=6.5.2026.303
                    
Install as a Cake Addin
#tool nuget:?package=NewLife.Redis.Extensions&version=6.5.2026.303
                    
Install as a Cake Tool

NewLife.Redis - 高性能 Redis 客户端组件

GitHub top language GitHub License Nuget Downloads Nuget Nuget (with prereleases)

[English]

NewLife.Redis 是新生命团队打造的高性能 / 高吞吐 / 易集成的 .NET Redis 客户端组件。自 2017 年起在多个千万 / 百亿级数据与高并发生产平台稳定运行,经受日均 80+ 亿次命令调用考验。

📖 完整文档:需求文档 | 架构文档 | 竞品分析 | Garnet 兼容性


目录


产品介绍

NewLife.Redis 为 .NET 开发者提供对 Redis 全生命周期的访问能力:

  • 协议完整:实现 RESP2 协议,覆盖 Redis 2.8 ~ 7.x 全版本主流命令,支持 String / List / Hash / Set / Sorted Set / Stream / Geo / HyperLogLog 所有数据结构。
  • 消息队列:内置简单队列、可靠队列(RPOPLPUSH + Ack 语义)、延迟队列、Stream 多消费组队列,开箱即用,无需重复造轮子。
  • 集群高可用:支持 Standalone / 主从复制 / Sentinel 哨兵 / Cluster 原生集群,自动故障切换。
  • 云厂商适配:针对阿里云 KVStore / 腾讯云 Redis / 华为云 DCS 提供专项配置说明与适配,覆盖代理模式、ACL 认证、SSL 加密、特殊认证格式等差异。
  • 兼容实现:自动识别 Microsoft Garnet、kvrocks 等 Redis 兼容实现,功能不支持时优雅降级并提供明确替代方案。
  • 宽框架支持:一个包覆盖 .NET Framework 4.5 ~ .NET 10+,适配工控、政务、IoT 等遗留场景。

核心特性

  • 经大规模生产验证:200+ Redis 实例,日峰值 1 亿+ 业务对象写入 / 80+ 亿命令调用
  • 低延迟:单次 Get/Set 往返 200~600µs(含网络)
  • 高吞吐:内置连接池(最大 100,000 并发)+ 高效同步 RESP 协议解析 + 可选自动管道合并
  • 自动重试与多地址故障切换:Server 支持逗号分隔多节点,网络异常快速切换,默认 10 秒屏蔽窗口
  • 丰富高级结构:List / Hash / Set / SortedSet / Stack / Geo / HyperLogLog / Stream
  • 多种消息队列范式:简单 / 可靠 / 延迟 / Stream / 多消费组
  • 可插拔编码器:默认 JSON,可扩展二进制序列化
  • APM 追踪:支持 ITracer 链路追踪 + PerfCounter 性能计数器
  • 强命名 + 多目标框架:net45 / net461 / netstandard2.0 / netstandard2.1 / (扩展包含 netcoreapp3.1 → net10)
  • 零外部重量级依赖,充分复用 NewLife 生态(日志、配置、序列化、安全)

Redis 协议与版本支持

RESP 协议支持

协议 状态 说明
RESP2 ✅ 完整支持 简单字符串 / 错误 / 整数 / 批量字符串 / 数组
RESP3 🔄 规划中 Map / Set / Double 类型,需 HELLO 握手协商

Redis 版本特性支持

Redis 版本 主要特性 状态
2.8 基础命令、SCAN、HyperLogLog、Pub/Sub ✅ 完整支持
3.0 Cluster 原生集群、CRC16 分片路由 ✅ 完整支持
3.2 GEO 地理信息 ✅ 完整支持
4.0 UNLINK 异步删除、MODULE 🔄 部分支持
5.0 Stream 数据结构(XADD/XREAD/XGROUP/XACK 全套) ✅ 完整支持
6.0 ACL 访问控制、TLS/SSL、LMOVE、RESET ✅ 完整支持
6.2 COPY、GETDEL、GETEX、GEOSEARCH ✅ 主要命令支持
7.0 Functions(FCALL)、LMPOP/ZMPOP、分片 Pub/Sub 🔄 规划中
7.2 SSUBSCRIBE / SPUBLISH 🔄 规划中

架构与模块划分

┌─────────────────────────────────────────────────────────────────┐
│                          应用层                                  │
│  ASP.NET Core / Console / WinForms / IoT / Worker Service        │
└──────────────────────────────┬──────────────────────────────────┘
                               │
┌──────────────────────────────▼──────────────────────────────────┐
│                扩展集成层 (NewLife.Redis.Extensions)             │
│  IDistributedCache · IDataProtection · AddRedisCaching DI        │
└──────────────────────────────┬──────────────────────────────────┘
                               │
┌──────────────────────────────▼──────────────────────────────────┐
│                   高级功能层 (FullRedis)                          │
│  RedisList<T> · RedisHash<T> · RedisSet<T> · RedisSortedSet<T>  │
│  RedisStack<T> · RedisGeo · HyperLogLog · PrefixedRedis          │
│  RedisQueue<T> · RedisReliableQueue<T> · RedisDelayQueue<T>      │
│  RedisStream<T> · PubSub · RedisEventBus                         │
│  RedisCluster · RedisSentinel · RedisReplication                 │
└──────────────────────────────┬──────────────────────────────────┘
                               │
┌──────────────────────────────▼──────────────────────────────────┐
│                   核心客户端层 (Redis)                            │
│  连接池 ObjectPool<RedisClient>(Min=10, Max=100000)             │
│  多节点切换 · Pipeline 管理 · 编码器 · 配置解析                   │
└──────────────────────────────┬──────────────────────────────────┘
                               │
┌──────────────────────────────▼──────────────────────────────────┐
│                   协议通信层 (RedisClient)                        │
│  TCP/TLS 连接 · RESP2 编解码 · ArrayPool<byte> 缓冲区             │
└──────────────────────────────┬──────────────────────────────────┘
                               │ TCP/TLS
┌──────────────────────────────▼──────────────────────────────────┐
│  Redis Server / Garnet / kvrocks / 阿里云 / 腾讯云 / 华为云       │
└─────────────────────────────────────────────────────────────────┘

关键类说明:

职责
Redis 核心客户端:连接池、多节点切换、Pipeline、配置管理
FullRedis 增强客户端:集群路由、键前缀、数据结构工厂方法
RedisClient RESP 协议单元:TCP 连接、命令编解码(内部,池化管理)
RedisList<T> 泛型数据结构封装,统一编码策略
RedisReliableQueue<T> 可靠消息队列(RPOPLPUSH + Ack 确认)
RedisStream<T> Stream 流队列(Redis 5.0+,消费组模式)
IPacketEncoder 可插拔编解码策略

安装与快速开始

# 稳定版
dotnet add package NewLife.Redis
# ASP.NET Core 扩展
dotnet add package NewLife.Redis.Extensions
# 开发版(含预发布)
dotnet add package NewLife.Redis --prerelease

推荐单例,线程安全,全程复用:

using NewLife.Caching;
using NewLife.Log;

XTrace.UseConsole();

var rds = new FullRedis("127.0.0.1:6379", "password", 0)
{
    Log = XTrace.Log,           // 可选:组件日志
    AutoPipeline = 100,         // 可选:命令数达到 100 自动提交管道
};

// 写入对象(自动 JSON 序列化)
rds.Set("user:1", new { Name = "Alice", Age = 30 }, expire: 3600);

// 读取(自动反序列化)
var name = rds.Get<String>("user:1");
Console.WriteLine(name);

连接字符串模式(推荐配置中心):

var rds = FullRedis.Create("server=127.0.0.1:6379;password=pass;db=0;timeout=3000");

基础用法

// 写入 / 读取
rds.Set("k1", 123, expire: 600);
var v = rds.Get<Int32>("k1");

// 仅在不存在时写入
var ok = rds.Add("k2", "init");

// 替换并返回旧值
var old = rds.Replace("k2", "new");

// 计数器
rds.Increment("counter", 1);
rds.Decrement("counter", 2);

// 过期管理
rds.SetExpire("k1", TimeSpan.FromMinutes(10));
var ttl = rds.GetExpire("k1");

// 批量读写
rds.SetAll(new Dictionary<String, Object> { ["a"] = 1, ["b"] = 2 }, expire: 300);
var dict = rds.GetAll<Int32>(["a", "b"]);

// 键前缀(PrefixedRedis)
var scoped = rds.GetPrefixed("myapp:");
scoped.Set("user", "Alice");  // 实际 key 为 myapp:user

数据结构操作

List(列表)

var list = rds.GetList<String>("queue:demo");
list.Add("job1");
list.Add("job2");
var first = list[0];
var popped = list.RightPop();

Hash(哈希)

var hash = rds.GetDictionary<String>("user:1001");
hash["Name"] = "Alice";
hash["Email"] = "alice@example.com";
var name = hash["Name"];
var all = hash.GetAll();

Set(集合)/ SortedSet(有序集合)

var set = rds.GetSet<String>("tags");
set.Add("redis");
set.Add("cache");
var contains = set.Contains("redis");

var zset = rds.GetSortedSet<String>("leaderboard");
zset.Add("Player1", 100.0);
zset.Add("Player2", 95.5);
var top3 = zset.GetByRank(0, 2);

Stack(栈)

var stack = rds.GetStack<String>("undo:ops");
stack.Push("op1");
stack.Push("op2");
var last = stack.Pop();   // "op2"

Geo(地理信息)

var geo = rds.GetGeo("locations");
geo.Add("Beijing",  116.4074, 39.9042);
geo.Add("Shanghai", 121.4737, 31.2304);
var dist = geo.GetDistance("Beijing", "Shanghai", "km");
var nearby = geo.Search("Beijing", 500, "km");

HyperLogLog(基数统计)

var hll = rds.GetHyperLogLog("uv:today");
hll.Add("user1", "user2", "user3");
var count = hll.Count;  // 近似基数
hll.Merge("uv:yesterday");

注意:基础 Redis 实例仅支持 KV 操作,高级集合请使用 FullRedis


管道 Pipeline 与自动合并

Pipeline 可显著降低网络往返(RTT),提升批量操作吞吐:

// 显式管道
rds.StartPipeline();
for (var i = 0; i < 1000; i++) rds.Set($"p:{i}", i);
var results = rds.StopPipeline(true);

自动模式(推荐生产使用):

rds.AutoPipeline = 100;    // 写操作达到 100 条自动提交
rds.FullPipeline = true;   // 读写操作均进入管道(吞吐优先场景)

消息队列

简单队列

var queue = rds.GetQueue<OrderMsg>("orders");

// 生产者
queue.Add(new OrderMsg { OrderId = "12345", Amount = 99.9m });

// 消费者(阻塞等待,timeout=0 永久阻塞)
var msg = queue.TakeOne(timeout: 30);

可靠队列(至少一次语义)

var queue = rds.GetReliableQueue<OrderMsg>("orders");

// 生产
queue.Add(new OrderMsg { OrderId = "12345" });

// 消费 + 确认
var msg = queue.TakeOne(timeout: 30);
if (msg != null)
{
    // 处理消息...
    queue.Acknowledge(msg);   // 确认消费,从 Ack 队列移除
}
// 若进程崩溃未确认,60s 后消息自动回滚到主队列

延迟队列

var delay = rds.GetDelayQueue<OrderMsg>("orders:delay");

// 60 秒后可被消费
delay.Add(new OrderMsg { OrderId = "12345" }, delay: 60);

// 消费(自动等待到期消息)
var msg = delay.TakeOne(timeout: 5);

Stream 流队列(Redis 5.0+,多消费组)

var stream = rds.GetStream<LogEntry>("logs");
stream.Group = "processor-group";

// 生产
stream.Add(new LogEntry { Level = "INFO", Message = "Application started" });

// 消费(多实例竞争消费同一组)
var entry = stream.TakeOne(timeout: 15);
if (entry != null)
{
    // 处理...
    stream.Acknowledge(entry.Id);
}

发布订阅

var pubsub = rds.GetPubSub("events:user");

// 发布
pubsub.Publish("login:Alice");

// 订阅(异步循环)
var cts = new CancellationTokenSource();
await pubsub.SubscribeAsync((channel, message) =>
{
    Console.WriteLine($"[{channel}] {message}");
}, cts.Token);

集群与高可用

多地址自动切换

// 逗号分隔多地址,网络异常时自动切换,60 秒后切回主节点
var rds = new FullRedis("10.0.0.1:6379,10.0.0.2:6379,10.0.0.3:6379", "pass", 0)
{
    ShieldingTime = 10,   // 不可用节点屏蔽 10 秒(默认)
    Retry = 3,            // 重试次数(默认)
};

自动集群模式检测

// AutoDetect=true 时,通过 INFO 自动识别工作模式
// ⚠️ 公有云代理模式下请保持默认 false,避免获取到内网节点地址
var rds = new FullRedis("sentinel-host:26379", "pass", 0)
{
    AutoDetect = true,    // 自动识别 Cluster / Sentinel / Replication
};

云厂商适配

阿里云 KVStore / Tair

// 标准版(Redis 2.8/4.0/5.0/6.0/7.0)
var rds = new FullRedis("xxxxxx.redis.rds.aliyuncs.com:6379", "YourPassword", 0);

// Redis 6.0 ACL 用户认证
var rds = new FullRedis("xxxxxx.redis.rds.aliyuncs.com:6379", "YourUser", "YourPassword", 0);

// SSL 加密连接
var rds = new FullRedis("xxxxxx.redis.rds.aliyuncs.com:6380", "YourPassword", 0)
{
    SslProtocol = SslProtocols.Tls12,
};

// ⚠️ 公有云代理模式:AutoDetect 保持默认 false
// ⚠️ 集群版:代理已处理分片路由,客户端无需感知内部拓扑

腾讯云 Redis

// 腾讯云标准/集群版:UserName 填写实例 ID(AUTH instanceId:password 格式)
var rds = new FullRedis("xxxxxx.redis.tencentcds.com:6379", "instanceId", "YourPassword", 0);

// 或连接字符串形式
var rds = FullRedis.Create("server=xxxxxx.redis.tencentcds.com:6379;username=instanceId;password=YourPassword;db=0");

华为云 DCS

// 主备版(标准 AUTH)
var rds = new FullRedis("xxxxxx.dcs.myhuaweicloud.com:6379", "YourPassword", 0);

// SSL 加密版(下载 PEM 证书后使用)
var rds = new FullRedis("xxxxxx.dcs.myhuaweicloud.com:6380", "YourPassword", 0)
{
    SslProtocol = SslProtocols.Tls12,
    Certificate = new X509Certificate2("huawei-dcs.pem"),
};

// ⚠️ 集群版不支持 SELECT,Db 必须为 0
// ⚠️ AutoDetect = false(默认),避免内网节点地址问题

云厂商通用注意事项:

  • 公有云代理模式:保持 AutoDetect = false(默认值),不让客户端自动探测内网节点
  • 连接数配额:各云厂商各规格连接数有上限,合理设置连接池 Max 参数
  • TCP 保活:华为云默认 300 秒 TCP 空闲超时,设置 Timeout 小于此值并定期 PING

序列化与编码器

默认编码:RedisJsonEncoder(内置 JSON 主机),开箱即用。

// 查看当前 JSON 配置
var jsonHost = RedisJsonEncoder.GetJsonHost();

// 切换为自定义编码器(如 MessagePack)
rds.Encoder = new MyMessagePackEncoder();

基元类型(String / Int32 / Int64 / Double / Boolean)直接序列化,不经 JSON,性能最优。


安全与认证

// Redis 6.0+ ACL 认证
var rds = new FullRedis("host:6379", "username", "password", 0);

// TLS 加密(指定协议版本)
rds.SslProtocol = SslProtocols.Tls12;

// 证书验证(双向 mTLS)
rds.Certificate = new X509Certificate2("client.pem", "certPassword");

// 连接字符串密码加密(ProtectedKey 机制)
// 配置 ProtectedKey.Instance.Secret,连接字符串中密码自动解密

可观测性

// 结构化日志
rds.Log       = XTrace.Log;      // 组件日志(连接切换、集群变化、重试)
rds.ClientLog = XTrace.Log;      // 协议层日志(每条命令,调试时开启)

// 性能计数器
rds.Counter = new PerfCounter();
var stats = rds.Counter.GetAll();   // 获取 ops/s、延迟、错误率

// APM 链路追踪(与 NewLife.Stardust / OpenTelemetry 兼容)
rds.Tracer = DefaultTracer.Instance;
// 所有 Execute / 队列生产消费均自动埋点,key 作为 Tag

扩展包

NewLife.Redis.Extensions 提供 ASP.NET Core 深度集成:

dotnet add package NewLife.Redis.Extensions
// Program.cs
builder.Services.AddRedisCaching(options =>
{
    options.Server   = "127.0.0.1:6379";
    options.Password = "pass";
    options.Db       = 0;
    options.Prefix   = "myapp:";
});

// 同时自动注册 IDistributedCache + FullRedis 单例

// 数据保护密钥存储到 Redis
builder.Services.AddDataProtection()
    .PersistKeysToRedis(redis, "DataProtection-Keys");

Garnet 兼容性

NewLife.Redis 完整支持微软的 Garnet 高性能 Redis 兼容服务器,自动检测并优雅降级。

var redis = new FullRedis("127.0.0.1:7000", null, 0);

// 自动检测服务器类型
if (redis.IsGarnet)
    Console.WriteLine("已连接到 Garnet 服务器");

Console.WriteLine($"服务器类型:{redis.ServerType}");  // Redis / Garnet / Unknown
Console.WriteLine($"服务器版本:{redis.Version}");
功能 Garnet 支持状态
String / List / Hash / Set / Sorted Set ✅ 完全支持
HyperLogLog / Geo ✅ 完全支持
Pub/Sub / 事务 / Lua 脚本 ✅ 完全支持
Pipeline / 管道 ✅ 完全支持
RedisQueue<T> / RedisDelayQueue<T> ✅ 完全支持
RedisReliableQueue<T> ✅ 完全支持
RedisStream<T> ❌ Garnet 暂不支持 Stream,自动抛出 NotSupportedException 并提示替代方案

详见:Garnet 兼容性文档


功能拆分与完成情况

图例:✅ 已完成 | 🔄 规划中 | ❌ 明确不计划

数据结构

结构 完成状态 说明
String KV + 批量 MGET/MSET/INCR/APPEND/GETRANGE 等
List LPUSH/RPOP/LRANGE/LMOVE 等
Hash HGET/HSET/HMGET/HSCAN 等
Set SADD/SMEMBERS/SUNION/SDIFF 等
Sorted Set ZADD/ZRANGE/ZPOPMIN/ZSCAN 等
Stream XADD/XREAD/XGROUP/XACK 全套
Geo GEOADD/GEODIST/GEOSEARCH 等
HyperLogLog PFADD/PFCOUNT/PFMERGE
Bitmap / Bitfield 🔄 SETBIT/BITCOUNT/BITFIELD

消息队列

队列类型 完成状态 语义保障
RedisQueue<T> 至多一次
RedisReliableQueue<T> 至少一次(RPOPLPUSH + Ack)
RedisDelayQueue<T> 延迟投递(Sorted Set)
RedisStream<T> 有序 + 消费组 + XACK
MultipleConsumerGroupsQueue<T> 多消费组广播
PubSub + RedisEventBus 实时推送
RedLock 分布式锁 🔄 多实例 Redlock 算法

集群支持

模式 完成状态
Standalone 单机
主从复制 Replication
Sentinel 哨兵
Cluster 原生集群
kvrocks 自动适配
Garnet 自动检测

协议与高级特性

功能 完成状态
RESP2 完整支持
RESP3 🔄 规划中
SSL/TLS
ACL 认证
事务 MULTI/EXEC/WATCH
Lua 脚本 EVAL/EVALSHA
Redis Functions 🔄 规划中
Pipeline(显式+自动)
模式订阅 PSUBSCRIBE 🔄
UNLINK 异步删除 🔄

性能测试参考

源码内置 Benchmark(Samples/Benchmark),典型结果(40 逻辑处理器,本地 Redis 7.0):

写入 400,000 项 | 4 线程  | ~576,368 ops/s
读取 800,000 项 | 8 线程  | ~647,249 ops/s
删除 800,000 项 | 8 线程  | ~1,011,378 ops/s
批量写入(管道)| 4 线程  | ~1,800,000 ops/s

手动触发 Bench:

rds.Bench(rand: true, batch: 100);  // 随机键 + 批量优化

实际性能受网络 RTT / Value 大小 / 序列化复杂度影响。建议单 Value 控制在 1~1.4KB。


最佳实践

  • 单例复用FullRedis 内部有连接池,强烈建议单例供全程使用,不要每次 new
  • Key 设计:使用 : 分层,如 user:1001:profile;生产环境使用 Prefix 隔离命名空间
  • 批量优先:能 GetAll/SetAll 不循环单键;利用 AutoPipeline 自动合并写操作
  • Value 大小:控制在 1~2KB;大对象拆分 / 压缩 / 用 Hash 分字段存储
  • 可靠消费:生产场景使用 RedisReliableQueue<T> 而非简单 List,避免消息丢失
  • 云厂商:公有云保持 AutoDetect = false,避免内网节点地址问题
  • 监控:生产启用 Counter 统计;ClientLog 仅调试时打开,避免热路径日志开销
  • SSL:公有云 / 生产环境启用 TLS 加密传输

常见问题 FAQ

Q: 是否支持 Redis Cluster 分片?
A: 支持。FullRedis 通过 AutoDetect=true 自动识别 Cluster 模式,CRC16 路由、MOVED/ASK 重定向均已实现。公有云代理模式建议保持默认 AutoDetect=false

Q: 和 StackExchange.Redis 相比有什么区别?
A: NewLife.Redis 采用连接池模型(对比 StackExchange 的多路复用),连接行为更直观;内置消息队列封装(可靠队列/延迟队列)是核心差异化;支持 .NET Framework 4.5。详见 竞品分析

Q: 如何处理大 Value 导致的慢查询?
A: 拆分数据结构(如 Hash 分字段)+ 批量读写 + 二进制编码器 + 控制 MaxMessageSize(默认 1MB 上限)。

Q: 连接池用完了怎么办?
A: 默认最大 100,000 连接,正常业务不会耗尽。若出现等待超时,检查是否有连接泄漏(未 Dispose)或某些操作持续长时间占用。

Q: 使用阿里云 / 腾讯云为什么连接失败?
A: 检查:① AutoDetect 是否为 false(默认正确);② 认证格式是否正确(腾讯云需要 username=instanceId);③ 网络安全组 / 白名单是否放开客户端 IP;④ 集群版是否禁止使用 SELECT 切库。

Q: Garnet 服务器是否支持所有功能?
A: 基础操作、List/Hash/Set/ZSet/HLL/Geo/队列均支持;Stream 暂不支持,会自动抛出 NotSupportedException 并提示用 RedisQueue<T> 替代。


路线图 Roadmap

  • RESP3 协议支持(Redis 7.x 新特性基础)
  • Redis Functions(FCALL/FUNCTION,替代 Lua 脚本)
  • LMPOP / ZMPOP(Redis 7.0 批量弹出)
  • RedLock 多实例分布式锁
  • Bitmap / Bitfield 操作
  • 模式订阅 PSUBSCRIBE 完整实现
  • UNLINK 异步删除
  • Prometheus 指标导出适配器
  • 阿里云 Tair 扩展命令(TairString / TairZSet / TairHash)
  • 华为云 DCS 集群版节点地址映射适配
  • 发布订阅 PubSub(已完成)
  • RedisStream 多消费组(已完成)
  • Garnet 服务器类型检测(已完成)

欢迎通过 Issue / PR 参与投票或补充需求。


竞品对比

能力 NewLife.Redis StackExchange.Redis FreeRedis 备注
.NET Framework 4.5 ❌(4.6.1+) 工控 / 政务遗留系统关键
连接模型 连接池 多路复用 连接池 各有适用场景
命令覆盖率 ~75% ~95% ~98% 规划提升至 90%+
内置消息队列封装 ✅ 完整 🔄 部分 可靠 / 延迟队列独有
内置序列化 ❌ 手动 ❌ 手动 降低样板代码
云厂商专项适配 ✅(阿里/腾讯/华为) 通用 通用 有专项文档
Garnet 显式适配 类型检测 + 降级
kvrocks 适配 自动识别
APM 追踪 ITracer 接口 ActivitySource 可对接 OpenTelemetry
RESP3 🔄 SE.Redis 已支持

详细分析见 竞品分析文档


新生命项目矩阵

项目 说明
NewLife.Core 核心库,日志 / 配置 / 缓存 / 序列化 / APM
NewLife.XCode 大数据 ORM,百亿级 + 分表 + 读写分离
NewLife.Net 超高性能网络库(千万级吞吐)
Stardust 分布式服务 / 配置 / 注册 / 发布中心
AntJob 分布式计算 & 调度平台
NewLife.RocketMQ RocketMQ 纯托管客户端

完整矩阵、企业级解决方案与商业支持请访问:https://newlifex.com


贡献指南 & 社区

  1. 提交前阅读仓库 .github/copilot-instructions.md(编码规范 & 审核清单)
  2. PR:保持最小变更、添加必要注释与测试说明
  3. Issue:提供版本、运行环境、最小复现场景

社区:QQ 群 1600800 / 1600838;GitHub Discussions / Issues 参与答疑。


许可证

MIT License。可自由商用 / 修改 / 再发行(无需额外授权)。保留版权声明即可。


新生命开发团队

XCode

团队自 2002 年迄今,维护 80+ .NET / IoT / 分布式相关开源项目,NuGet 累计下载超 400 万。产品与组件已广泛服务于电力、物流、工业控制、教育、通信、文博等行业。
网站:https://newlifex.com | 开源:https://github.com/NewLifeX
微信公众号:

智能大石头


若本文档未覆盖你的使用场景,欢迎提交 Issue;一起让文档更完善!

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.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.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 (1)

Showing the top 1 NuGet packages that depend on NewLife.Redis.Extensions:

Package Downloads
CodeRule

业务流水号规则生成器,便于快速生成流水号

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
6.5.2026.307-beta1435 74 3/7/2026
6.5.2026.305-beta0003 85 3/5/2026
6.5.2026.303 108 3/3/2026
6.5.2026.303-beta0003 79 3/3/2026
6.4.2026.215-beta1300 90 2/15/2026
6.4.2026.201 138 2/1/2026
6.4.2026.201-beta0322 93 2/1/2026
6.4.2026.111-beta1644 126 1/11/2026
6.4.2026.104 119 1/4/2026
6.4.2026.104-beta1039 106 1/4/2026
6.4.2026.102 143 1/2/2026
6.4.2026.102-beta1534 102 1/2/2026
6.4.2025.1230-beta0419 100 12/30/2025
6.4.2025.1227-beta0356 102 12/27/2025
6.4.2025.1216-beta1109 278 12/16/2025
6.4.2025.1216-beta0004 275 12/16/2025
6.4.2025.1214-beta1244 170 12/14/2025
6.4.2025.1206-beta0241 159 12/6/2025
6.4.2025.1119-beta1619 421 11/19/2025
6.4.2025.1113 351 11/13/2025
Loading failed

支持RESP3协议并优化核心性能分配;增强Garnet兼容性识别与文档;新增RedisSwitch示例并重构基准测试与文档体系