4款.NET開源的Redis使用者端驅動庫

2023-10-13 06:01:23

前言

今天給大家推薦4款.NET開源免費的Redis使用者端驅動庫(以下排名不分先後)。

Redis是什麼?

Redis全稱是REmote DIctionary Service,即遠端字典服務。Redis 是一個使用C語言編寫的、開源的(遵守 BSD 協定)、支援網路、可基於記憶體亦可持久化的紀錄檔型、Key-Value的NoSQL資料庫。

NewLife.Redis

專案介紹

  • NewLife.Redis 是一個Redis使用者端元件,以高效能處理巨量資料實時計算為目標。
  • Redis協定基礎實現Redis/RedisClient位於X元件,本庫為擴充套件實現,主要增加列表結構、雜湊結構、佇列等高階功能。
  • 支援.NETCore/.NET4.0/.NET4.5,為巨量資料與訊息佇列而特別優化,線上單應用日均100億呼叫量。

專案特性

  • 在ZTO巨量資料實時計算廣泛應用,200多個Redis範例穩定工作一年多,每天處理近1億包裹資料,日均呼叫量80億次。
  • 低延遲,Get/Set操作平均耗時200~600us(含往返網路通訊)。
  • 大吞吐,自帶連線池,最大支援1000並行。
  • 高效能,支援二進位制序列化。

GitHub開源地址

https://github.com/NewLifeX/NewLife.Redis

csredis

專案介紹

.NET Core或.NET Framework 4.0+ Redis使用者端,用於Redis、Redis Sentinel(2.8)和Cluster。包括同步和非同步使用者端。

專案特性

  • CSRedisClient和RedisHelper:保持所有方法名稱與redis-cli一致
  • 支援geo型別命令(需要redis-server 3.2或更高版本)
  • 支援Redis Cluster redis-trib.rb
  • 支援Redis Sentinel和主從模式
  • 支援stream型別命令(需要redis-server 5.0及以上版本)

GitHub開源地址

https://github.com/2881099/csredis

FreeRedis

專案介紹

基於.NET的Redis使用者端,支援 .NET Core 2.1+、.NET Framework 4.0+ 以及 Xamarin。它支援叢集、哨兵、主從、釋出訂閱、Lua指令碼、管道、事務、流、使用者端快取以及連線池等功能。

專案特性

  • 所有方法名與 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 協定

GitHub開源地址

https://github.com/2881099/FreeRedis

StackExchange.Redis

專案介紹

StackExchange.Redis是一個基於.NET的高效能Redis使用者端,提供了完整的Redis資料庫功能支援,並且具有多節點支援、非同步程式設計模型、Redis叢集支援等特性,使得與Redis資料庫的互動更加靈活、高效。

專案特性

  • 高效能的多路複用設計,可以高效地利用來自多個呼叫執行緒的共用連線
  • 對redis節點設定進行抽象:使用者端可以靜默地協商多個redis伺服器,以提高魯棒性和可用性
  • 方便存取完整的redis功能集
  • 完整的雙重程式設計模型,支援同步和非同步使用,無需使用TPL的"同步轉非同步"
  • 支援redis "cluster"

請注意,以上翻譯結果以markdown格式輸出。

GitHub開源地址

https://github.com/StackExchange/StackExchange.Redis

優秀專案和框架精選

該專案已收錄到C#/.NET/.NET Core優秀專案和框架精選中,關注優秀專案和框架精選能讓你及時瞭解C#、.NET和.NET Core領域的最新動態和最佳實踐,提高開發效率和質量。坑已挖,歡迎大家踴躍提交PR,自薦(讓優秀的專案和框架不被埋沒