詳解如何在ASP.NET Core中使用Redis
Redis 是一個開源的內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)存儲系統(tǒng),可以用作數(shù)據(jù)庫、緩存和消息中間件。它支持多種類型的數(shù)據(jù)結(jié)構(gòu):字符串,哈希表,列表,集合,有序集等等。
Redis 官方?jīng)]有推出Windows版本,倒是由Microsoft Open Tech提供了Windows 64bit 版本支持。
如何在Windows機(jī)器上安裝Redis=>下載安裝文件Redis-x64-3.2.100.msi,安裝完畢之后,打開service管理器,找到Redis服務(wù),并將其啟動。
前期準(zhǔn)備:
1.推薦使用Visual Studio 2015 Update3作為你的IDE,下載地址:http://www.dbjr.com.cn/softjc/446184.html
2.你需要安裝.NET Core的運(yùn)行環(huán)境以及開發(fā)工具,這里提供VS版:http://www.dbjr.com.cn/softs/472362.html
創(chuàng)建項(xiàng)目:
打開VS 2015,新建->項(xiàng)目->C#模板->Web->ASP.NET Core Web Application(.NET Core)
選擇好路徑,項(xiàng)目名為CSCoreRedis,確定后選擇Web Application,身份驗(yàn)證選擇無。
項(xiàng)目創(chuàng)建完之后,在CSCoreRedis項(xiàng)目上右鍵選擇管理NuGet包,搜索StackExchange.Redis并安裝。
我們將用這個庫提供的接口去操作Redis。
代碼:
首先要在HomeController.cs中添加Redis的連接,如果你不是用的本地Redis服務(wù),請自行修改連接字符串。
private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() => { return ConnectionMultiplexer.Connect("localhost,abortConnect=false"); }); public static ConnectionMultiplexer Connection { get { return lazyConnection.Value; } }
添加構(gòu)造函數(shù),初始化database和List。這里使用ListLeftPush是為了在后面用ListRange的時候從左到右取能取到最新的數(shù)據(jù)。
public static string ListKeyName = "MessageList"; public HomeController() { db = Connection.GetDatabase(); if (db.IsConnected(ListKeyName) && (!db.KeyExists(ListKeyName) || !db.KeyType(ListKeyName).Equals(RedisType.List))) { //Add sample data. db.KeyDelete(ListKeyName); //Push data from the left db.ListLeftPush(ListKeyName, "TestMsg1"); db.ListLeftPush(ListKeyName, "TestMsg2"); db.ListLeftPush(ListKeyName, "TestMsg3"); db.ListLeftPush(ListKeyName, "TestMsg4"); } }
修改Index.cshtml文件,添加輸入框及按鈕
<form action="/Home/SendMessage" method="post"> <input type="text" name="message" style="width:250px" /> <input name="btnSend" value="Send" type="submit" style="margin-left:5px" /> </form>
在controller中添加SendMessage方法
[HttpPost] public ActionResult SendMessage(string message) { if (db.IsConnected(ListKeyName)) { db.ListLeftPush(ListKeyName, message); } return RedirectToAction("Index"); }
顯示錯誤信息或信息列表
@if (@ViewData["Error"] != null) { <h2>@ViewData["Error"]</h2> } else { <div id="MessageList"> <h3>Latest messages</h3> @foreach (var msg in Model) { <div>@Html.DisplayFor(modelItem => msg) </div> } </div> }
我們來看一下運(yùn)行結(jié)果
在輸入框中輸入字符,按下Send按鈕,頁面上將會顯示最新的5條信息。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
asp.net實(shí)現(xiàn)在非MVC中使用Razor模板引擎的方法
這篇文章主要介紹了asp.net實(shí)現(xiàn)在非MVC中使用Razor模板引擎的方法,較為詳細(xì)的分析了Razor模板引擎的使用技巧,需要的朋友可以參考下2015-06-06asp.net C#實(shí)現(xiàn)下載文件的六種方法實(shí)例
asp.net C#實(shí)現(xiàn)下載文件的六種方法實(shí)例,需要的朋友可以參考一下2013-04-04Asp.net Core MVC中怎么把二級域名綁定到特定的控制器上
這篇文章主要介紹了Asp.net Core MVC中怎么把二級域名綁定到特定的控制器上,需要的朋友可以參考下2017-06-06ASP.NET Core 1.0 部署 HTTPS(.NET Core 1.0)
這篇文章主要為大家詳細(xì)介紹了ASP.NET Core 1.0 部署 HTTPS(.NET Core 1.0),感興趣的小伙伴們可以參考一下2016-07-07在GridView中LinkButton的屬性的應(yīng)用(如何不用選中就刪除這一行)
GridView中LinkButton的屬性的應(yīng)用,實(shí)現(xiàn)不用選中就刪除這一行2009-04-04.NetCore使用Swagger+API多版本控制的流程分析
這篇文章主要介紹了.NetCore使用Swagger+API多版本控制的流程分析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12C#數(shù)據(jù)綁定控件中的DataSource屬性淺談
使用該屬性指定用來填充Repeater控件的數(shù)據(jù)源。DataSource可以是任何System.Collections.IEnumerable對象, 如用于訪問數(shù)據(jù)庫的System.Data.DataView、System.Collections.ArrayList、System.Collections.Hashtable、數(shù)組或IListSource對象2013-02-02