C# Azure 存储-分布式缓存Redis在session中的配置

C# Azure 存储-分布式缓存Redis在session中的配置

1. 开始

  对于分布式的缓存,平常的session的处理是一个用户对应一台分布式的机器,如果这台机器中途挂机或者不能处理这个用户session的情况发生,则此用户的session会丢失,会发生不可预知的错误。如下图:

C# Azure 存储-分布式缓存Redis在session中的配置_第1张图片

 

  如果用Redis的分布式缓存,则能避免上面的情况。因为session是保存在Redis中,不会有丢失的情况,就算中途有服务器A挂掉。如下图:

C# Azure 存储-分布式缓存Redis在session中的配置_第2张图片

 

 

2. 代码

1)在包管理器中,输入下面的包,安装

Install-Package Microsoft.Web.RedisSessionStateProvider

2)可以看到web.config中自动添加了以下代码:

"Custom" customProvider="MySessionStateStore" timeout="30">
      
        
        
        
        
        "MySessionStateStore" 
             type="Microsoft.Web.Redis.RedisSessionStateProvider" 
             host="ceswebchat.redis.cache.chinacloudapi.cn" 
             accessKey="m1JuDEstaqA+xxxxxxxxxxx" 
             ssl="false"
             throwOnError = "true"
             retryTimeoutInMilliseconds = "5000"
             connectionTimeoutInMilliseconds = "5000"
             operationTimeoutInMilliseconds = "1000"
             databaseId = "0"
             />
      
 
      

上面可以看到,输入你所需的信息就可以了。很简单

  • host – Redis Cache的host name/endpoint
  • port – 使用你的Redis Cache的SSL port或者非SSL port,这取决你的ssl设置的值
  • accessKey – Redis Cache的Keys
  • ssl – true (Cache/Client之间安全的通信); 否则设为 false
    • 默认禁用 non-SSL port,有关启用 non-SSL port,参阅 Access Ports
  • throwOnError – true (在事件出错时抛出异常),否则设为 false. 你可以在静态属性 Microsoft.Web.Redis.RedisSessionStateProvider.LastException检查异常信息, 默认为true。
  • retryTimeoutInMilliseconds – 在此时间间隔内重试操作(单位:毫秒)
  • databaseId – 指定一个数据库用来存储缓存输入数据。如果未指定,默认值为0。
  • applicationName – 缓存key存储在Redis中命名规则为:{_}_Data,如果多个应用程序共享相同的key,则这个参数是可选的。 如果不设置该参数将使用默认值。
  • connectionTimeoutInMilliseconds – 这个设置会覆盖connectTimeout参数设置。如果未设置,那么会使用默认的connectTimeout值5000,详情请参考 StackExchange.Redis configuration model.
  • operationTimeoutInMilliseconds – 这个设置会覆盖syncTimeout参数设置。如果未设置,那么会使用默认的syncTimeout值1000,详情请参考 StackExchange.Redis configuration model.
posted on 2016-08-22 17:47 alun-chen 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/alunchen/p/5796473.html

你可能感兴趣的:(C# Azure 存储-分布式缓存Redis在session中的配置)