天天看點

Asp.net Core 使用Redis存儲Session

  Asp.net Core 改變了之前的封閉,現在開源且開放,下面我們來用Redis存儲Session來做一個簡單的測試,或者叫做中間件(middleware)。

  對于Session來說褒貶不一,很多人直接說不要用,也有很多人在用,這個也沒有絕對的這義,個人認為隻要不影什麼且又可以友善實作的東西是可以用的,現在不對可不可用做表态,我們隻關心實作。

  這個相對于之前的.net是友善了不少,需要在project.json中的dependencies節點中添加如下内容:

這裡并非我實作,而是借用https://github.com/aspnet/Caching/tree/dev/src/Microsoft.Extensions.Caching.Redis代碼來實作,不知道為什麼之前還有這個類庫,而現在NUGET止沒有了,為了不影響日後更新我的命名空間也用 Microsoft.Extensions.Caching.Redis

可以看到微軟這裡有四個類,其實我們隻需要三個,第四個拿過來反而會出錯:

我們在Startup中ConfigureServices增加

在Startup中Configure增加

到此我們的配置完畢,可以測試一下是否寫到了Redis中

在Mvc項目中,我們來實作如下代碼

運作我們發現第一次出現了Hello First timer字樣,重新整理後出現了Hello old timer字樣,證明Session成功,再檢視一下Redis看一下,有值了,這樣一個分布式的Session就成功實作了。

對于上面的執行個體我把源碼放在了:https://github.com/hantianwei/Microsoft.Extensions.Caching.Redis

且也在Nuget上上傳了一份,友善直接使用,Tianwei.Microsoft.Extensions.Caching.Redis ,隻是ID加了Tianwei 空間名還是Microsoft.Extensions.Caching.Redis

從上面的執行個體我們發現微軟這次是真的開放了,這也意味着如果我們使用某些類不順手或不合适時可以自已寫自已擴充

繼續閱讀