欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

Redis 入門 - C#.NET Core客戶端庫六種選擇

freeflydom
2024年9月12日 10:39 本文熱度 813

給大家介紹6款.NET系Redis客戶端庫: ServiceStack.Redis、StackExchange.Redis、CSRedisCore、FreeRedis、NewLife.Redis、BeetleX.Redis。

01、ServiceStack.Redis

ServiceStack.Redis算的上最老牌、最有名的一款Redis C#/.NET客戶端庫了,但是因為商業性導致對于大多數人來說不是首選。

ServiceStack.Redis是一款功能豐富、操作簡單、高性能的C#/.NET客戶端庫,對原生的功能和特性提供很好的支持,同時又做了更高級的功能抽象,使得對簡單對象或復雜類型序列化操作更容易。當然也同時提供了同步和異步API。

下面我們寫個簡單的使用小例子:

public static void Run()

{

    Console.WriteLine($"ServiceStack.Redis 使用示例");

    //創建連接池

    var pool = new RedisManagerPool("127.0.0.1:6379");

    //獲取一個redis實例

    using var redis = pool.GetClient();

    //設置鍵值對

    var setResult = redis.Set("key1", "value1");

    Console.WriteLine($"設置鍵值對key1/value1操作結果:{setResult}");

    //獲取鍵對應的值

    var value = redis.Get<string>("key1");

    Console.WriteLine($"獲取鍵key1對應的值為:{value}");

    // 刪除鍵

    var delResult = redis.Remove("key1");

    Console.WriteLine($"刪除鍵key1操作結果:{delResult}");

    //檢查鍵是否存在

    var exists = redis.ContainsKey("key1");

    Console.WriteLine($"鍵key1是否存在: {exists}");

}

執行結果如下:

02、StackExchange.Redis

StackExchange.Redis是一款基于.NET的、高性能的、免費的、功能全面的、通用的老牌Redis客戶端。并且支持Redis多節點,Redis集群,IO多路復用,同步/異步雙編程模型等技術,這也使得其與Redis交互同時兼具靈活性與高效性,大大提升了Redis讀寫的性能與并發。

同時它還提供了豐富的高級功能,包括但不限于管道,連接池,事務,Lua腳本、訂閱/發布等。序列化與壓縮也提供了多種方式供以選擇,很方便與.NET應用程序集成。

下面我們寫個簡單的使用小例子:

public static void Run()

{

    Console.WriteLine($"StackExchange.Redis 使用示例");

    // 創建 ConnectionMultiplexer 實例

    using var connection = ConnectionMultiplexer.Connect("127.0.0.1:6379");

    //獲取 Redis 數據庫實例

    var redis = connection.GetDatabase();

    //設置鍵值對

    var setResult = redis.StringSet("key1", "value1");

    Console.WriteLine($"設置鍵值對key1/value1操作結果:{setResult}");

    //獲取鍵對應的值

    var value = redis.StringGet("key1");

    Console.WriteLine($"獲取鍵key1對應的值為:{value}");

    // 刪除鍵

    var delResult = redis.KeyDelete("key1");

    Console.WriteLine($"刪除鍵key1操作結果:{delResult}");

    //檢查鍵是否存在

    var exists = redis.KeyExists("key1");

    Console.WriteLine($"鍵key1是否存在: {exists}");

}

執行結果如下:

03、CSRedisCore

CSRedisCore是一款國人基于開源項目csredis上實現的著名Redis C#/.NET客戶端庫。它做到了所有方法名和redis-cli方法名保持一致。它支持Redis 集群、Redis 哨兵和Redis主從分離,以及geo類型、流類型命令,同時支持同步/異步接口。

下面我們寫個簡單的使用小例子:

public static void Run()

{

    Console.WriteLine($"CSRedisRedis 使用示例");

    // 創建 CSRedisClient 實例

    var redis = new CSRedisClient("127.0.0.1:6379");

    //設置鍵值對

    var setResult = redis.Set("key1", "value1");

    Console.WriteLine($"設置鍵值對key1/value1操作結果:{setResult}");

    //獲取鍵對應的值

    var value = redis.Get("key1");

    Console.WriteLine($"獲取鍵key1對應的值為:{value}");

    // 刪除鍵

    var delResult = redis.Del("key1");

    Console.WriteLine($"刪除鍵key1操作結果:{delResult}");

    //檢查鍵是否存在

    var exists = redis.Exists("key1");

    Console.WriteLine($"鍵key1是否存在: {exists}");

}

執行結果如下:

04、FreeRedis

FreeRedis是CSRedisCore作者的另一個大作。至少從邏輯上來說也應該比CSRedisCore更優秀,事實也是如此,FreeRedis在內存使用、存儲效率都做了優化,在持久化、容錯方面也做了改進,同時還提供了更多的高級功能以及自定義選項。我們直接看官方介紹。

單從介紹上來說CSRedisCore有的功能它有,CSRedisCore沒有的功能它也有??偟膩碚f功能更強大了。另外CSRedisCore目前處于維護階段已經不新增功能了。因此更推薦FreeRedis。

下面我們寫個簡單的使用小例子:

public static void Run()

{

    Console.WriteLine($"FreeRedis 使用示例");

    // 創建 CSRedisClient 實例

    var redis = new RedisClient("127.0.0.1:6379");

    //設置鍵值對

    redis.Set("key1", "value1");

    Console.WriteLine($"設置鍵值對key1/value1操作成功");

    //獲取鍵對應的值

    var value = redis.Get("key1");

    Console.WriteLine($"獲取鍵key1對應的值為:{value}");

    // 刪除鍵

    var delResult = redis.Del("key1");

    Console.WriteLine($"刪除鍵key1操作結果:{delResult}");

    //檢查鍵是否存在

    var exists = redis.Exists("key1");

    Console.WriteLine($"鍵key1是否存在: {exists}");

}

執行結果如下:

05、NewLife.Redis

NewLife.Redis具有低延時,高性能,高吞吐量以及穩定性、可靠性良好,因此在大量實時數據計算的應用場景有很好的發揮。它為針對大數據和消息隊列做了優化,使得其可以用支撐日均百億級的調用量,而它的連接池可以做到100000個連接并發。在包含網絡通訊的前提下可以把get/set操作做到平均耗時200~600微秒。其二進制序列化方式也更有助于提升數據存儲和讀取效率。

下面我們寫個簡單的使用小例子:

public static void Run()

{

    Console.WriteLine($"NewLife.Redis 使用示例");

    // 創建 CSRedisClient 實例

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

    //設置鍵值對

    var setResult = redis.Set("key1", "value1");

    Console.WriteLine($"設置鍵值對key1/value1操作結果:{setResult}");

    //獲取鍵對應的值

    var value = redis.Get<string>("key1");

    Console.WriteLine($"獲取鍵key1對應的值為:{value}");

    // 刪除鍵

    var delResult = redis.Remove("key1");

    Console.WriteLine($"刪除鍵key1操作結果:{delResult}");

    //檢查鍵是否存在

    var exists = redis.ContainsKey("key1");

    Console.WriteLine($"鍵key1是否存在: {exists}");

}

06、BeetleX.Redis。

BeetleX.Redis是一款高可用、高性能、異步非阻塞設計的.net core客戶端庫。并且基本全面覆蓋redis-cli指令,提供了多種序列化方式,使用簡單輕松。

下面我們寫個簡單的使用小例子:

public static async Task RunAsync()

{

    Console.WriteLine($"BeetleX.Redis 使用示例");

    // 創建 CSRedisClient 實例

    RedisDB redis = new RedisDB(0)

    {

        DataFormater = new JsonFormater()

    };

    //添加寫主機

    redis.Host.AddWriteHost("127.0.0.1", 6379);

    //添加讀主機

    redis.Host.AddReadHost("127.0.0.1", 6379);

    //設置鍵值對

    var setResult = await redis.Set("key1", "value1");

    Console.WriteLine($"設置鍵值對key1/value1操作結果:{setResult}");

    //獲取鍵對應的值

    var value = await redis.Get<string>("key1");

    Console.WriteLine($"獲取鍵key1對應的值為:{value}");

    // 刪除鍵

    var delResult = await redis.Del("key1");

    Console.WriteLine($"刪除鍵key1操作結果:{delResult}");

    //檢查鍵是否存在

    var exists = await redis.Exists("key1");

    Console.WriteLine($"鍵key1是否存在: {exists}");

}

執行結果如下:

07、總結

  • ServiceStack.Redis:綜合功能全面,適合需要商業支持的用戶。

  • StackExchange.Redis:官方推薦,功能全面,社區支持良好,文檔豐富。

  • CSRedisCore:功能齊全,簡單易用,適合快速開發。

  • FreeRedis:高性能,功能齊全,簡單易用,適合快速開發。

  • NewLife.Redis:高性能,高并發,低延遲,分布式場景適合使用。

  • BeetleX.Redis。:高可用,高性能,異步操作,適合高負載場景。

:測試方法代碼以及示例源碼都已經上傳至代碼庫,有興趣的可以看看。https://gitee.com/hugogoos/Planner

轉自https://www.cnblogs.com/hugogoos/p/18409367



該文章在 2024/9/12 10:41:34 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved