C# 使用Redis缓存作为会话存储asp.net核心
尝试将Redis缓存用作asp.net mvc核心(2.1.1)中开发的现有Web应用程序中的会话存储 指的是 但当尝试在Redis Desktop Manager中检查会话设置/获取值时,不会显示任何内容 要使会话存储使用Redis缓存而不是默认的内存中(in-proc)选项,是否还需要其他步骤 Startup.csC# 使用Redis缓存作为会话存储asp.net核心,c#,session,caching,redis,asp.net-core-mvc,C#,Session,Caching,Redis,Asp.net Core Mvc,尝试将Redis缓存用作asp.net mvc核心(2.1.1)中开发的现有Web应用程序中的会话存储 指的是 但当尝试在Redis Desktop Manager中检查会话设置/获取值时,不会显示任何内容 要使会话存储使用Redis缓存而不是默认的内存中(in-proc)选项,是否还需要其他步骤 Startup.cs public void ConfigureServices(IServiceCollection services) { services.AddD
public void ConfigureServices(IServiceCollection services)
{
services.AddDistributedRedisCache(options =>
{
options.InstanceName = Configuration.GetValue<string>
("redis:name");
options.Configuration = Configuration.GetValue<string>
("redis:host");
});
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddSessionStateTempDataProvider();
services.AddSingleton<IDistributedCache, RedisCache>();
services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromMinutes(60);
});
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseSession();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Login}/{action=Login}/{id?}");
});
}
}
"redis": {
"host": "127.0.0.1",
"port": 6379,
"name": "localhost"
},
使用的Nuget软件包
Microsoft.Extensions.Caching.Redis 2.1.1
行动中的示例用法方法
var storedValue = "Redis TimeStamp : " + DateTime.Now.ToString("s");
HttpContext.Session.SetString("TestValue", storedValue);
HttpContext.Session.CommitAsync();
感谢你在这方面的指点和指导
TIA检查此项:
//RedisCache中的共享会话
使用StackExchange.Redis;
使用Microsoft.AspNetCore.DataProtection;
public void配置服务(IServiceCollection服务)
{
services.AddMvc();
services.AddDataProtection()
.SetApplicationName(“vextus”)
.PersistKeysRedis(ConnectionMultiplexer.Connect(Configuration.GetConnectionString(“RedisConnection”)),
“数据保护密钥”);
services.AddDistributedRedisCache(o=>
{
o、 Configuration=Configuration.GetConnectionString(“重新连接”);
});
services.AddSession(o=>
{
o、 Cookie.Name=“vextus”;
o、 Cookie.SameSite=SameSiteMode.None;
o、 Cookie.HttpOnly=true;
o、 IdleTimeout=时间跨度从分钟(10);
});
}
一般来说,我建议StackExchange.Redis满足您的.net Redis需求。我敢肯定,如果你想在github上闲逛,Azure Redis团队也会推荐你这么做。@NoRefundsNoReturns谢谢你的建议。。即使是我也在考虑同样的问题,但以前从未使用过。