• ASP.NET MVC Redis实现Session


    1:Nuget安装StackExchange.Redis

    2:Nuget安装RedisSessionStateProvider

    在web.config

    <sessionState mode="Custom" customProvider="MySessionStateStore">
          <providers>
            <!-- For more details check https://github.com/Azure/aspnet-redis-providers/wiki -->
            <!-- Either use 'connectionString' OR 'settingsClassName' and 'settingsMethodName' OR use 'host','port','accessKey','ssl','connectionTimeoutInMilliseconds' and 'operationTimeoutInMilliseconds'. -->
            <!-- 'throwOnError','retryTimeoutInMilliseconds','databaseId' and 'applicationName' can be used with both options. -->
            <!--
              <add name="MySessionStateStore" 
                host = "127.0.0.1" [String]
                port = "" [number]
                accessKey = "" [String]
                ssl = "false" [true|false]
                throwOnError = "true" [true|false]
                retryTimeoutInMilliseconds = "5000" [number]
                databaseId = "0" [number]
                applicationName = "" [String]
                connectionTimeoutInMilliseconds = "5000" [number]
                operationTimeoutInMilliseconds = "1000" [number]
                connectionString = "<Valid StackExchange.Redis connection string>" [String]
                settingsClassName = "<Assembly qualified class name that contains settings method specified below. Which basically return 'connectionString' value>" [String]
                settingsMethodName = "<Settings method should be defined in settingsClass. It should be public, static, does not take any parameters and should have a return type of 'String', which is basically 'connectionString' value.>" [String]
                loggingClassName = "<Assembly qualified class name that contains logging method specified below>" [String]
                loggingMethodName = "<Logging method should be defined in loggingClass. It should be public, static, does not take any parameters and should have a return type of System.IO.TextWriter.>" [String]
              />
            -->
            <add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" 
                 connectionString="127.0.0.1:6379,password=123456,ssl=false,abortConnect=false,connectTimeout=5000" host="" accessKey="" ssl="true" />
          </providers>
        </sessionState>

    在代码中使用session

     Session["maimai"] = "麦麦";

     Session["haha"] = "哈哈";

    redis会生成两个Hash key,如下

    {/_jih5op0z3n0pcoo3amv32p3n}_Data

    {/_jih5op0z3n0pcoo3amv32p3n}_Internal

    Data保存所有的session数据,Internal保存session的过期时间,截图如下

    jih5op0z3n0pcoo3amv32p3n 这一串就是我们的sessionId,如下图

    再添加一个session测试一下,

     Session["haha"] = "哈哈";

     https://docs.microsoft.com/zh-cn/azure/redis-cache/cache-aspnet-session-state-provider

  • 相关阅读:
    BZOJ2870 最长道路
    为什么要设置Java环境变量
    JavaMail收发邮件的步骤
    Java 7开发者预览版发布
    J2EE的13种核心技术
    jdk1.5、1.6、1.7新特性详细介绍(整理)
    JAVAEE5 VS JAVAEE6
    TOCMAT的web.xml详解(转贴)
    setAttribute()和getAttribute()
    jsp servlet的区别和联系
  • 原文地址:https://www.cnblogs.com/baicaocanhua/p/7425543.html
Copyright © 2020-2023  润新知