如何在 .NET 中使用 Redis缓存
譯文鏈接:https://www.infoworld.com/article/3187905/how-to-work-with-redis-cache-in-net.html
緩存是一種狀態管理機制,通常用于提升你的應用程序性能,它很大程度上能夠減少一個請求對你系統資源的消耗。
Redis是一個開源的,高性能的,NoSql數據庫,它的速度非常快,而且所有的數據都是灌入到內存中,從內存中讀寫數據的性能開銷真的是微乎其微,值得一提的是 Redis 采用的是BSD ?license,說明你可以將它用于商業和非商業的用途。
Redis是什么,我為什么要用它?
Redis 是最流行的開源,NoSQL,基于內存的數據存儲,而且非常????的是:它的數據存儲支持多個數據結構,eg:strings,hashes,sets,lists 等等,Redis內部也提供了對 復制分發 和 事務 的支持,同時在數據持久化方面也做的非常好。
如果你的應用程序需要讀取大量的數據,并且你的機器有很多的空閑內存,在這樣的場景下如果你有提升性能的需求,采用 Redis 是一個非常好的選擇,將Redis應用到你的程序中操作步驟也是非常簡單的,接下來我們會一起討論下如何去安裝,配置和使用。
安裝Redis
本篇討論下如何在 Windows 平臺上安裝 Redis,安裝包可以到 GitHub:https://github.com/MSOpenTech/redis/releases ?去下載,在安裝的過程中,記得勾選一下 add Redis to the PATH environmental variable,將 Redis的路徑添加到環境變量中,等到安裝程序執行完畢之后,可以通過 Run -> service.msc 到 windows 的服務面板去看下 redis service 是否已經安裝成功。
使用 Redis Client Sdk
現在 redis 已經成功安裝到你的系統中了,接下來你需要一個 client sdk ?去連接 redis server 來讀取數據,在下面的例子中,我會使用開源的 ServiceStack 這個sdk,接下來在 Visual Studio 中創建一個 Console 應用程序,然后通過 NuGet packkage manager 來安裝 ServiceStack.Redis。
假定現在 ServiceStack.Redis 已經通過 NuGet 成功安裝,下面的兩個方法展示了連接 Redis server 來發送和讀取數據。
private?static?bool?Save(string?host,?string?key,?string?value){bool?isSuccess?=?false;using?(RedisClient?redisClient?=?new?RedisClient(host)){if?(redisClient.Get<string>(key)?==?null){isSuccess?=?redisClient.Set(key,?value);}}return?isSuccess;}private?static?string?Get(string?host,?string?key){using?(RedisClient?redisClient?=?new?RedisClient(host)){return?redisClient.Get<string>(key);}}注意 RedisClient 的 Set 和 Get 方法是如何從 Redis 中發送和讀取數據的,我準備留給你一件事情,你可以試著修改一下這兩個方法讓其支持泛型,這樣的話你的兩個方法就可以支持任何類型了,對吧。
接下來看一下如何在 Main 方法中調用,代碼如下:
static?void?Main(string[]?args){string?host?=?"localhost";string?key?=?"IDG";//?Store?data?in?the?cachebool?success?=?Save(host,?key,?"Hello?World!");//?Retrieve?data?from?the?cache?using?the?keyConsole.WriteLine("Data?retrieved?from?Redis?Cache:?"?+?Get(host,key));Console.Read();}???正如我之前所說,Redis的功能特別多,在后續的文章中,我會和大家一起討論Redis的高級特性,比如說:持久化,發布訂閱,失敗轉移 等等,你也可以利用 RDB (單個壓縮文件) 或者 AOF 的方式去持久化數據,那我應該選擇哪一種持久化呢?你可以在 高性能,持久化,磁盤IO 這些方面綜合權衡一下。
如果想了解 Redis 的更多知識,可以參考官方文檔:https://redis.io/documentation
對了,如果你想用一個可視化界面去管理 Redis 數據,可以試一下這款工具: Redis Admin UI tool, 下載地址:https://github.com/ServiceStackV3/mythz_blog/blob/master/pages/381.md
總結
以上是生活随笔為你收集整理的如何在 .NET 中使用 Redis缓存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#阻塞队列BlockingCollec
- 下一篇: asp.net ajax控件工具集 Au