• SessionStateMode之Redis共享session


    周六的时候用SQL Server来实现session共享,今天下班早就试了下使用Redis来实现session共享。接着上一篇博客,上一篇使用sessionState节点mode="SQLServer"来实现不同应用的session共享,其实它还有一个mode="custom",用它可以将session放在redis等其他的缓存数据库中。

    一、redis服务端配置

    关于Redis的服务端配置我之前的博客里面也有,可以参考我的博客C#Redis主从复制,这里只启动了一个redis,端口为6379.

    二、Web应用配置

    1.RedisProvider配置

    使用nuget查找redissession,安装RedisSessionProvider,WebForm和MVC中都要进行安装

    2.安装之后又readme,里面有提示,怎么使用RedisSessionProvider

    在webform、mvc的web.config中配置下面的sessionState节点

        <sessionState mode="Custom" customProvider="RedisSessionProvider">
          <providers>
            <add name="RedisSessionProvider" type="RedisSessionProvider.RedisSessionStateStoreProvider, RedisSessionProvider" host="127.0.0.1" port="6379" accessKey="" ssl="false"/>
          </providers>
        </sessionState>

    在Global文件中配置下面的代码,并添加引入

    using RedisSessionProvider.Config;
    using StackExchange.Redis;

                ConfigurationOptions redisConfigOpts = StackExchange.Redis.ConfigurationOptions.Parse("127.0.0.1:6379");
                RedisSessionProvider.Config.RedisConnectionConfig.GetSERedisServerConfig = (HttpContextBase context) =>
                {
                    return new KeyValuePair<string, StackExchange.Redis.ConfigurationOptions>(
                        "DefaultConnection",
                        redisConfigOpts);
                };

    对于webform设置session和mvc获取session就不贴上了,上一博客也有,先运行webform,然后运行mvc,此时会出错如下图,这个需要将StackExchange.Redis.dll更新到最新。

    使用redis-cli客户端查看redis存的数据,可以看到端口6379中有keys,而这个key其实就是sessionid,在浏览器中也是可以看到的。

    三、运行demo

    先启动webform,然后启动mvc,可以在mvc中通过ViewBag获取到的session。

    四、总结

    这个仅是一个简单的demo,在实际应用中一般会通过nginx来进行负载均衡,及在浏览器到服务器直接通过nginx来进行web服务器的负载均衡,在web服务器到redis直接也是通过nginx来进行负载均衡,redis进行主从复制,这样可以很方便的进行水平扩展。

    参考:http://www.cnblogs.com/yanweidie/tag/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84/

    http://www.cnblogs.com/sunyj/p/5413495.html

  • 相关阅读:
    一直在维护一些项目,其实 这些项目也没有太大的需求,
    iis 7 url 重写
    xmlapp 如何配置
    [转载]什么是native compiler?什么是cross compiler?
    CDC工具
    EDA工具介绍(数字设计)
    让FPGA初学者头疼的各种仿真【转载】
    [SOF] Pointers, smart pointers or shared pointers?
    GNU的工具gmake and make
    mealy machine和moore machine
  • 原文地址:https://www.cnblogs.com/5ishare/p/7507980.html
Copyright © 2020-2023  润新知