2017-04-24 27 views
0

場景: 我們正在使用azure redis會話提供程序。當頁面第一次加載時,從外部API檢索數據並將它們存儲在redish會話中。out-proc azure redis會話如何獲得功能?

same會話數據通過用戶會話中的不同頁面和組件檢索。問題是:

  1. 應用程序是否僅獲取會話數據一次並存儲本地http當前上下文?或每次它去redis商店?

  2. 如果我們正在加密set上的數據並解密Get操作上的數據會怎麼樣?

謝謝。

回答

1

應用得到會話數據從Redis的,每次你問它...爲部分,你將不得不等待,直到辭典鍵解鎖。見https://msdn.microsoft.com/en-us/library/aa479041.aspx#aspnetsessionstate_topic3假設您正在使用asp.net此

一個頁面要求填寫通過設置@Page指令爲true的EnableSessionState屬性訪問會話狀態。 (這是默認設置。)但是,頁面也可以對會話狀態具有隻讀權限,例如,當EnableSessionState屬性設置爲ReadOnly時。在這種情況下,模塊將在會話中持有讀卡器鎖定,直到完成該頁面的請求。因此,可能會發生併發讀數。

如果頁面請求設置閱讀器鎖定,則同一會話中的其他同時處理的請求不能更新會話狀態,但至少允許讀取。這意味着當一個會話只讀請求被提供時,等待只讀請求被賦予比需要完全訪問的請求更高的優先級。如果頁面請求在會話狀態上設置了寫入鎖定,則所有其他頁面都會被阻止,而不管它們是否必須讀取或寫入。例如,如果兩個幀嘗試寫入會話,則其中一個必須等​​到另一個完成。

StackExchange.Redis是隻爲HttpSessionState模塊的包裝(或抽象)