1. 程式人生 > >如何在C#Asp.Net MVC使用Redis快取

如何在C#Asp.Net MVC使用Redis快取

為什麼要在Asp.Net MVC專案中使用Redis快取呢?系統是按照高負載高併發來設計的,這就涉及伺服器叢集帶來的問題,Session儲存驗證碼或登入資訊,在系統登入的時候,可能展示登入介面和儲存驗證碼是一臺伺服器,登入驗證的時候又是另外一個伺服器,就會造成驗證碼找不到、重複登入等現象,所以必須系統公用的資訊資料儲存在一個地方,所有的伺服器都從這個地方獲取,這時我們就要用到Redis了,為什麼要用Redis?Redis有什麼優點?請自行度娘。下面我跟小夥伴們說說如何在C#Asp.Net MVC使用Redis,希望對遇到同樣問題的小夥伴少走彎路,謝謝。

首先,下載Windows版的Redis3.2.1,官網不提供Windows版本下載,解壓後的檔案如下圖,遠端連線我已經配置好了,密碼是123456,執行Redis我也做了一個名為StartUp的批處理檔案,就不用每次執行Redis都要進入Dos介面了。

Redis啟動完成

其次,在專案中引用RedisHelper類庫,工具–Nuget程式包管理–管理解決方案的Nuget程式包–聯機,搜尋“RedisHelper”,選中下圖紅框選項安裝,我已經安裝了右上角會有個綠色的鉤,安裝過程可能需要10-15分鐘,安裝好之後就變需要配置Redis連線資訊,在web.config檔案appSetting節點新增主Redis伺服器<add key="RedisHostServers" value="[email protected]:6379?db=1" />,從Redis伺服器的連線字串<add key="RedisSlaveServers" value="192.168.0.105:6379?db=1"/>

,其中123456代表密碼,沒有密碼可以把[email protected]去掉,127.0.0.1:6379是Redis服務的IP和埠,db=1代表那個資料庫。

然後,使用RedisHelper類庫,儲存、獲取、刪除資料,儲存RedisHelper.Set(Key, Value, DateTime),DateTime不提供預設是-1,不會過期,如果儲存一樣的Key之前的值會被覆蓋;獲取RedisHelper.Get<T>(Key),T是當初儲存是什麼型別,如果值不存在返回null;刪除RedisHelper.Remove(key);

最後,安裝redis-desktop-manager檢視資料,連線Redis伺服器,輸入IP,埠,有密碼輸密碼,沒有密碼留空,測試連線是否連線成功,Redis預設建立16個數據庫,如下圖

檔案下載

windows-redis3.2.1   redis-desktop-manager