.net core 使用 redis 個人感覺.net core 對於微軟技術而言有很重要的意義 ,所以最近已有時間就想看一看關於.net core 的文章。 今天我就來寫一寫如何在.net core 環境中使用redis。 https://redis.io/clients 這個是redis的客戶端 ...
.net core 使用 redis
個人感覺.net core 對於微軟技術而言有很重要的意義 ,所以最近已有時間就想看一看關於.net core 的文章。
今天我就來寫一寫如何在.net core 環境中使用redis。
https://redis.io/clients 這個是redis的客戶端支持地址
看見redis的客戶端有很多語言支持的。
點開c#看見一個非常熟悉的驅動StackExchange
只怪自己一開始選擇了最熟悉的這個驅動,其實如果選擇Servicestack的話應該會好一點
創建redis工具類
我在nuget中找到了這個驅動的相關說明,發現只支持.net standard不知道安裝到.net core app項目中會不會有什麼問題,不過沒關係還好之前對.net standard有一點點瞭解。
其實很簡單,就是創建一個類庫,類庫的類型選擇.net standard而不是.net core的就行了。
由於我用的開發工具不是visual studio而是visual studio code,所以我可以在終端里使用dotnet cli命令.
於是我在項目的同級補錄創建了一個文件夾,cd進去之後輸入dotnet cli命令:
dotnet new class
稍等片刻,在這個文件夾下就創建完成了一個類庫。
說明一下:如果用dotnet cli創建的類庫,預設類型就是.net standard如果用visual studio創建的話則需要手動選擇類庫類型。
打開nuget管理工具安裝StackExchange.Redis,visual studio code 可以用dotnet cli命令也可以用nuget插件。
創建一個redis工具類,添加如下代碼
private static ConnectionMultiplexer redis;
protected static ConnectionMultiplexer GetConn()
{
if (redis == null || redis.IsConnected)
{
redis = ConnectionMultiplexer.Connect("localhost");
}
return redis;
}
然後在這個類中可以根據api添加自己的擴展方法,我為了方便都是在別的項目中繼承這個類,然後調用GetConn()獲取ConnectionMultiplexer後根據需求操作redis中的數據。
比如
創建hash: GetConn().GetDatabase().HashSet()
獲取hash: GetConn().GetDatabase().HashGet()
執行redis語句: GetConn().GetServer(GetConn().GetEndPoints()[0]).Keys(0, "weather:*");
接下來就是在自己之前的項目中(web/console)引用剛創建的類庫,
dotnet cli:dotnet add [選項] <PROJECT> [命令]
一般為了速度,都是之家打開項目文件加入一行代碼就可以了
類似於:
<ItemGroup>
<ProjectReference Include="../Models/Models.csproj" />
</ItemGroup>
其實我對redis瞭解的還很好,如果有大神偶遇,請多指教:)