Redis學習筆記~StackExchange.Redis實現分布式Session

來源:互聯網
上載者:User

標籤:

回到目錄

對於多WEB的環境現在已經是必須的了,很難想像一台WEB伺服器面對百萬並發的響應,所以,我們需要多台WEB伺服器叢集合作,來緩解這種高並發,高吞吐的情境,而對於多WEB的情境又會有個問題出現,即session儲存的問題,如一個使用者登陸後,把一個狀態資訊儲存到當前WEB伺服器的session裡,而你請求其它頁面時,很可能就被路由到另一台伺服器了,這時,session也就丟了,而對於這種情況,有人把redis這個儲存中介軟體想了起來,對它進行了封裝,就有了今Apsara Infrastructure Management Framework於redis的session共用機制。

下面說下安裝方法

1 使用nuget安裝redis緩衝 StackExchange.Redis
2 使用nuget安裝RedisSession服務  RedisSessionStateProvider
3 從nuget添加RedisSession之後,它會在你的config檔案中寫入以下內容,主要是對session進行持久化設定的
   

<sessionState mode="Custom" customProvider="MySessionStateStore" timeout="30">      <providers>        <!-- Either use ‘connectionString‘ and provide all parameters as string 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]            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" host="127.0.0.1" accessKey="" ssl="false" />      </providers>    </sessionState>


4 下載是新版本的redis服務端,可以是windows版的,我用的是2.6.13,低版本的redis會出現Eval命令無法識別的問題
5 處理完成,可以測試你的session了,預設到期時間為1200秒

注意,上面sessionState裡的timeout就是設定session逾時的,它同樣使用於redis的儲存,下面是存在redis裡的session,

 

感謝我VIP群的哥們提出這個問題,並對session逾時的設定進行瞭解決。

回到目錄

 

Redis學習筆記~StackExchange.Redis實現分布式Session

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.