前言
.NET 下 RedisClient SDK 选择挺多,国人常用免费的有 StackExchange.Redis/CSRedis/Newlife.Redis,收费的有 ServiceStack.Redis。
小弟从接手 CSRedis 代码 2016 年至今维护了6年,原因是初入 .NETCore 坑可选择性少,使用的 StackExchange.Redis 发生 Timeout 问题无法解决,项目首急上线于是使用了 CSRedis,由于作者停止维护一些扩展或功能得不到解决,所以后来直接引入源码到项目内改进,增加了 RedisHelper、连接池、集群、以及高版本 Redis-server 的一些命令,最后由于改动太多与原作者开源线程丢失,且接接触开源协议,就直接创建了 CSRedisCore 仓储进行了社区开源维护,对此行为给原作者致歉,并且在 CSRedisCore 首页标名致谢话语。
越往后面,小弟发现 CSRedisCore 自己一些错误的改动,又或者说原作者的代码实现理念难以对 redis-server 高版本支持,又或者会造成破坏性升级,与其这样不如重新写一个 RedisClient,于是 FreeRedis 就这样诞生了。
开源理念
FreeRedis 的命名来自,“自由”、“免费”,它和名字与 FreeSql 是一个理念,简易是他们一致的追寻方向,最低可支持 .NET Framework 4.0 运行环境,支持到 Redis-server 7.0。
感谢 Nuget FreeRedis 原拥有者对 FreeRedis 的割爱,他的开源地址:https://gitee.com/LeanCai
如今,FreeRedis 从第一个版本发布至今 20个月,时间验证了其可靠性,是时候公开给大家,多一个选择多一条路。FreeRedis 整个源码是零依赖,使用它只会在 bin 目录产生一个 FreeRedis.dll,非常的轻量级,并且其功能非常强大:
🦄 FreeRedis
基于 .NET 的 Redis 客户端,支持 .NET Core 2.1+、.NET Framework 4.0+ 以及 Xamarin。
- 🌈 所有方法名与 redis-cli 保持一致
- 🌌 支持 Redis 集群(服务端要求 3.2 及以上版本)
- ⛳ 支持 Redis 哨兵模式
- 🎣 支持主从分离(Master-Slave)
- 📡 支持发布订阅(Pub-Sub)
- 📃 支持 Redis Lua 脚本
- 💻 支持管道(Pipeline)
- 📰 支持事务
- 🌴 支持 GEO 命令(服务端要求 3.2 及以上版本)
- 🌲 支持 STREAM 类型命令(服务端要求 5.0 及以上版本)
- ⚡ 支持本地缓存(Client-side-cahing,服务端要求 6.0 及以上版本)
- 🌳 支持 Redis 6 的 RESP3 协议
QQ群:4336577(已满)、8578575(在线)、52508226(在线)
🚀 快速入门
public static RedisClient cli = new RedisClient("127.0.0.1:6379,password=123,defaultDatabase=13");
//cli.Serialize = obj => JsonConvert.SerializeObject(obj);
//cli.Deserialize = (json, type) => JsonConvert.DeserializeObject(json, type);
cli.Notice += (s, e) => Console.WriteLine(e.Log); //打印命令日志
cli.Set("key1", "value1");
cli.MSet("key1", "value1", "key2", "value2");
string value1 = cli.Get("key1");
string[] vals = cli.MGet("key1", "key2");
支持 STRING、HASH、LIST、SET、ZSET、BITMAP、HyperLogLog、GEO、Stream 以及布隆过滤器等。
参数 | 默认值 | 说明 |
---|---|---|
protocol | RESP2 | 若使用 RESP3 协议,你需要 Redis 6.0 环境 |
user |