.NetCore Session.Redis (转载)
首先创建ASP.NET CORE Web项目,然后按如下顺序操作。
1.添加nuget程序包:
Microsoft.AspNetCore.Session;
Microsoft.AspNetCore.DataProtection.Redis;
Microsoft.Extensions.Caching.Redis.Core;
Microsoft.Extensions.Caching.Redis
Microsoft.AspNetCore.Http; //使用Session时有扩展方法
2.在appsettings.json中添加Redis配置:
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"WebConfig": {
"Redis": {
"Connection": "127.0.0.1:6379,defaultdatabase=1",
//"Connection": "127.0.0.1:6379,allowAdmin=true,password=123456,defaultdatabase=5",
"InstanceName": "Core_Redis_Session_"
},
"SessionTimeOut": "30" //session过期时长,分钟
},
"AllowedHosts": "*"
}
3.在startup.cs类中,按如下例子添加代码:
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); /*
* Microsoft.AspNetCore.Session;
* Microsoft.AspNetCore.DataProtection.Redis;
* Microsoft.Extensions.Caching.Redis.Core;
* Microsoft.Extensions.Caching.Redis
* Microsoft.AspNetCore.Http; //使用Session时有扩展方法
*/ #region 使用Redis保存Session
var redisConn = Configuration["WebConfig:Redis:Connection"];
var redisInstanceName = Configuration["WebConfig:Redis:InstanceName"];
//Session 过期时长分钟
var sessionOutTime = Configuration.GetValue<int>("WebConfig:SessionTimeOut", ); //var redis = StackExchange.Redis.ConnectionMultiplexer.Connect(redisConn);
//services.AddDataProtection().PersistKeysToRedis(redis, "DataProtection-Test-Keys");
services.AddDistributedRedisCache(option =>
{
//redis 连接字符串
option.Configuration = redisConn;
//redis 实例名
option.InstanceName = redisInstanceName;
}
);
#endregion //添加Session并设置过期时长
services.AddSession(options => { options.IdleTimeout = TimeSpan.FromMinutes(sessionOutTime); }); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseSession(); app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
4.在控制器HomeController中添加:
public class HomeController : Controller
{
public IActionResult Index()
{
ViewData["UserName"] = this.HttpContext.Session.GetString("UserName");
ViewData["PassWord"] = this.HttpContext.Session.GetString("PassWord");
return View();
} [HttpPost]
public NoContentResult Add(string userName, string pwd)
{
this.HttpContext.Session.SetString("UserName", userName); this.HttpContext.Session.SetString("PassWord", pwd); return NoContent();
}
}
5.在View/Index.cshtml添加如下代码:
<form method="post" action="../Home/Add">
<div>
<input name="username" id="username" type="text" value="@ViewData["UserName"]" />
<input name="pwd" id="pwd" type="password" value="" />
<input type="submit" value="更新" />
<h1>提交用户名称为:@ViewData["UserName"] 密码:@ViewData["PassWord"]</h1>
<a href="javascript:void(0);" onclick="window.location.reload();">刷新显示最新值</a>
</div>
</form>
.NetCore Session.Redis (转载)的更多相关文章
- .NetCore Session.Redis
首先创建ASP.NET CORE Web项目,然后按如下顺序操作.1.添加nuget程序包: Microsoft.AspNetCore.Session; Microsoft.AspNetCore.Da ...
- 在 ASP.NET CORE 中使用 SESSION (转载)
Session 是保存用户和 Web 应用的会话状态的一种方法,ASP.NET Core 提供了一个用于管理会话状态的中间件.在本文中我将会简单介绍一下 ASP.NET Core 中的 Session ...
- Spring boot配合Spring session(redis)遇到的错误
背景:本MUEAS项目,一开始的时候,是没有引入redis的,考虑到后期性能的问题而引入.之前没有引用redis的时候,用户登录是正常的.但是,在加入redis支持后,登录就出错!错误如下: . __ ...
- 单点登录实现(spring session+redis完成session共享)
一.前言 项目中用到的SSO,使用开源框架cas做的.简单的了解了一下cas,并学习了一下 单点登录的原理,有兴趣的同学也可以学习一下,写个demo玩一玩. 二.工程结构 我模拟了 sso的客户端和s ...
- Nginx+Tomcat搭建集群,Spring Session+Redis实现Session共享
小伙伴们好久不见!最近略忙,博客写的有点少,嗯,要加把劲.OK,今天给大家带来一个JavaWeb中常用的架构搭建,即Nginx+Tomcat搭建服务集群,然后通过Spring Session+Redi ...
- Spring session(redis存储方式)监听导致创建大量redisMessageListenerContailner-X线程
待解决的问题 Spring session(redis存储方式)监听导致创建大量redisMessageListenerContailner-X线程 解决办法 为spring session添加spr ...
- SpringBoot学习笔记(13)----使用Spring Session+redis实现一个简单的集群
session集群的解决方案: 1.扩展指定server 利用Servlet容器提供的插件功能,自定义HttpSession的创建和管理策略,并通过配置的方式替换掉默认的策略.缺点:耦合Tomcat/ ...
- Session Redis Nginx
Session + Redis + Nginx 一.Session 1.Session 介绍 我相信,搞Web开发的对Session一定再熟悉不过了,所以我就简单的介绍一下. Session:在计算机 ...
- Spring Boot 应用使用spring session+redis启用分布式session后,如何在配置文件里设置应用的cookiename、session超时时间、redis存储的namespace
现状 项目在使用Spring Cloud搭建微服务框架,其中分布式session采用spring session+redis 模式 需求 希望可以在配置文件(application.yml)里设置应用 ...
随机推荐
- 【SPL标准库专题(1)】 SPL简介
什么是SPL SPL是Standard PHP Library(PHP标准库)的缩写. 根据官方定义,它是"a collection of interfaces and classes th ...
- 使用 Azure 门户创建 Windows 虚拟机
可以通过 Azure 门户创建 Azure 虚拟机. 此方法提供一个基于浏览器的用户界面,用于创建和配置虚拟机和所有相关的资源. 本快速入门介绍了如何创建虚拟机并在 VM 上安装 webserver. ...
- Oracle EBS INV 删除保留
DECLARE p_rsv apps.inv_reservation_global.mtl_reservation_rec_type; p_dummy_sn apps.inv_reservation_ ...
- 数据库还原错误:指定的转换无效。(SqlManagerUI)
SSMS在一定程度上方便我们进行一些常见的操作.但有时候它处理得又不是那么不人性化.尤其是错误信息. 今天我在进行数据库还原的时候就碰到一个错误:指定的转换无效.(SqlManagerUI) Spec ...
- Sysstat的工具集sar、 iostat、mpstat、sadf、sar、sadc
sysstat Sysstat的工具集sar. iostat.mpstat.sadf.sar.sadc * iostat 工具提供CPU使用率及硬盘吞吐效率的数据: * mpstat 工具提供单个处理 ...
- tali -f 和 tail -F 之间的区别
tail -f 等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止 tail -F 等同于--follow=name --retry ...
- orcl 中upper()和lower()和initcap()的用法
upper(字符串 | 列):输入的字符串变为大写返回: 将 bqh4表里的zym字段信息中含有字母的全部转成大写的方法: select * from bqh4 select upper(zym) f ...
- PHP 8中数据类型
PHP 一共支持八种数据类型 4种标量数据类型 boolean布尔型 只有两个值 true 和 flase integer整形 包括正整数和负整数,无小数位 float/double 浮点 ...
- [Python_7] Python Socket 编程
0. 说明 Python Socket 编程 1. TCP 协议 [TCP Server] 通过 netstat -ano 查看端口是否开启 # -*-coding:utf-8-*- "&q ...
- Redis雪崩、穿透、热点key等优化
一.缓存 Redis做缓存是最常见的应用场景.客户端请求在缓存层命中就直接返回,如果miss就去读取存储层,存储层读取到就写入缓存层,然后再返回到客户端. 优点: 加速读写 降低后端负载 缺点: 数据 ...