您的位置:首页 > 数据库 > Redis

Configuring Redis for ASP.NET Core Session Store

2017-02-09 12:03 537 查看
http://www.hossambarakat.net/2016/02/03/configuring-redis-as-asp-net-core-1-0-session-store/


Configuring Redis for ASP.NET Core Session Store

03 Feb 2016 | asp.net

As you may have seen in this ASP.NET Community
Standup and Scott Hanselman’s blog post ASP.NET 5 is dead - Introducing ASP.NET Core 1.0 and
.NET Core 1.0, ASP.NET 5 is being renamed to ASP.NET Core so I will use the new names in this post.

Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker. It supports data structures such as strings,
hashes, lists, sets, sorted sets with range queries. Redis works with an in-memory dataset. it also supports persisting the dataset to disk. Moreover, It provides master-slave asynchronous replication. For more details, check the documentation.

This post will go through the steps required to configure Redis for ASP.NET 5 ASP.NET Core session store targeting DNX on .NET Framework 4.5.1
- 4.6.


Installing Redis

Redis is not officially supported on windows. However, the Microsoft Open Tech group develops and maintains Windows port targeting Win64 available
here

To install Redis on your local machine, install the chocolatey package http://chocolatey.org/packages/redis-64/ and run 
redis-server
 from
a command prompt.

Redis could also be installed as windows service, for more details please review this link


Configuring Distributed Cache

ASP.NET shipped with several caching implementations including Redis, To use ASP.NET 5 ASP.NET Core distributed caching, add the following packages to your 
project.json


At the time of this writing, the package 
Microsoft.Extensions.Caching.Redis
version
“1.0.0-rc1-final” doesn’t support .NET Core 1.0 however it is planned to be supported and for more details check this issue

"dependencies": {
"Microsoft.Extensions.Caching.Redis": "1.0.0-rc1-final"
...
},


Update the 
ConfigureServices
 method inside the 
Startup
 class
to add the Redis caching services as below

public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IDistributedCache>(
serviceProvider =>
new RedisCache(new RedisCacheOptions
{
Configuration = "localhost",
InstanceName = "Sample"
}));
//Other services configuration...
}



Configuring Session

The ASP.NET 5 ASP.NET Core 
Session
 is not configured
by default, 
Session
configurations must be done before using it,
otherwise you will receive 
InvalidOperationException
 whenever you
try to access it.

To use session, add 
Microsoft.AspNet.Session
 to the 
project.json
 as
shown below

"dependencies": {
"Microsoft.AspNet.Session": "1.0.0-rc1-final"
...
},


Then, Update the 
ConfigureServices
 method inside the 
Startup
 class
to add the Redis caching services as below

public void ConfigureServices(IServiceCollection services)
{
services.AddSession();
//Other services configuration...
}


Finally, add the following line to 
Configure
:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseSession();
}


That’s it, Now you can reference 
Session
 from 
HttpContext
 and
all session entries will be saved to Redis.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  netcore