.NET redis 客户端开源组件 FreeRedis (继 CSRedisCore 之后重写)
Posted dotNET搬砖队
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET redis 客户端开源组件 FreeRedis (继 CSRedisCore 之后重写)相关的知识,希望对你有一定的参考价值。
FreeRedis 是一款 .NET redis 客户端开源组件,以 MIT 协议开源托管于 github,目前支持 .NET 5、.NETCore 2.1+、.NETFramework 4.0+、Xamarin,有可能已经支持 AOT 编译(目前未测试,但会往这个方向走)。
FreeRedis 会严格按照 FreeSql 的开源方式,做好单元测试,兼容平台,简单易用,有问必答,有求必应的态度,为中国 .NET 开源事业做一点点贡献。
感谢大家的支持,项目还未公开就已经获得 66 星。目前项目仍在起步阶段,欢迎小伙伴参与进来,贡献测试、或代码、或建议都可以。
项目当前的状态:
版本 0.0.8(目前不建议使用在生产环境)
单元测试 268 个
支持 集群、哨兵、主从(已通过测试)
支持 连接池
支持 .NET5/.NETCore 2.1+/.NET4.0+
支持 Redis6.0 所有类型
支持 Redis6.0 RESP3 协议
API 仍然与 redis-cli 命令保持一致
采用最宽松的开源协议 MIT https://github.com/2881099/FreeRedis
2|0项目由来
说来话长,2016 年之前本人写了一年多 nodejs 服务端应用,使用过 node-redis 组件,真心好用。在此期间有同事不停安利 .NET 可以跨平台了,劝我快回来搞 .NET,开始我是抗拒做螃蟹第一人的,不知道是哪天下午闲着蛋疼去体验了一把 .NETCore 1.0-previewXX(不记得哪个版本了)。试了一把被吸引住了,体验感受和 expressjs 像极了,再也看不见以往 webform/mvc 的缺点。
于是我准备入坑了,入坑第一件事除了 hello world,还需要做相关调研:
性能OK
设计OK
发展OK(暂时的定级)
相关组件OK(HttpClient、Redis、Ado.NET、等等基础组件)
初始调研完成之后,接下下就要抽时间选型框架了,最终从众多框架中选择了合适团队的一款:https://github.com/simplcommerce/SimplCommerce ,在这个项目原有基础之上,结合企业规范要求定制改造,大约两个月时间完成了可生产的状态。(框架不求开始尽善尽美,只求使用中不断打磨,最终走向完美)
理想丰满现实骨干,接下来的故事就是遇到生产故障了,StackExchange.Redis、HttpClient 关于这两个组件的问题,以前讲过现在就不说了(万万没想到这么大的组件使用都能出现问题)。吃螃蟹就会掉坑,掉了坑就要想办法解决,最终与 csredis 组件结缘。
以当时的情形纵观 .NET 所有 redis 客户端组件,只有 csredis 源码最易改造支持 .NETCore(水平有限见谅),csredis 2014 年停止更新,本人于 2016 年将其改造支持 .NETCore 为主,以及增加连接池管理、集群、哨兵、redis2.8 以上的命令,在公司项目生产环境使用一年半载之后开源。
CSRedisCore 开源这到久,nuget 下载量达到 60W,收集需求若干,bug 若干(有解决了的、也有未能重现的),基于我已经对 redis 这块很熟悉,然后 redis 5.0/6.0 又新增了蛮多特性,重新写一款 bug 更少、可维护性更好的想法产生了。
经过几个月的墨迹终于走通可用了,项目最终命名:FreeRedis
感谢 Nuget 转让包的大兄弟。
3|0如何使用
以上是关于.NET redis 客户端开源组件 FreeRedis (继 CSRedisCore 之后重写)的主要内容,如果未能解决你的问题,请参考以下文章
Redis 详解 StackExchange.Redis Client
一个技术汪的开源梦 —— 基于 .Net Core 的公共组件之 Http 请求客户端