Redis和Session的区别
为了搞清楚Session和Redis的区别,特意做了两个例子验证,话不多说,上示例。
环境:
VS2019(.net core mvc),Redis
测试示例1:
Controller代码
public IActionResult Index()
{
ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(ConfigHelper.GetSectionValue("key"));
IDatabase db = redis.GetDatabase();
if (string.IsNullOrEmpty(db.StringGet("aa")))
{
db.StringSet("aa", "第一次赋值");
}
else
{
db.StringSet("aa", "已存在");
}
ViewBag.AA = db.StringGet("aa");
if (string.IsNullOrEmpty(HttpContext.Session.GetString("time")))
{
HttpContext.Session.SetString("time", "第一次赋值");
}
else
{
HttpContext.Session.SetString("time", "已经存在");
}
ViewBag.BB = HttpContext.Session.GetString("time");
return View();
}
view 代码
<div class="text-center">
<h1 class="display-4">Welcome --@ViewBag.AA +++@ViewBag.BB </h1>
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
测试示例2:
Controller代码
public IActionResult Index()
{
ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost");
IDatabase db = redis.GetDatabase();//if (string.IsNullOrEmpty(db.StringGet("aa")))
//{
// db.StringSet("aa", "第一次赋值B");
//}
//else
//{
// db.StringSet("aa", "已存在B");
//}
ViewBag.AA = db.StringGet("aa");
if (string.IsNullOrEmpty(HttpContext.Session.GetString("time")))
{
HttpContext.Session.SetString("time", "第一次赋值B");
}
else
{
HttpContext.Session.SetString("time", "已经存在B");
}
ViewBag.BB = HttpContext.Session.GetString("time");
return View();
}
View
<h1 class="display-4">Welcome --@ViewBag.AA +++@ViewBag.BB </h1>
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
示例1第一次运行
示例1刷新页面
示例2 第一次运行
示例2刷新页面
结论:
1.Session作用于同一应用程序,Redis可多个应用程序共享。