out-proc azure redis session如何实现功能?

时间:2017-04-24 10:56:34

标签: azure session

方案: 我们正在使用azure redis会话提供程序。首次加载页面时,从外部API检索数据并将它们存储在红色会话中。

相同会话数据通过用户会话中的不同页面和组件进行检索。问题是:

  1. 应用程序是否仅获取会话数据一次并存储本地http当前上下文?或者每次进入redis商店?

  2. 如果我们在set上加密数据并在Get操作上解密数据怎么办?

  3. 感谢。

1 个答案:

答案 0 :(得分:1)

每次要求时,应用程序获取来自Redis的会话数据...对于写入部分,您必须等到字典键解锁了。请参阅https://msdn.microsoft.com/en-us/library/aa479041.aspx#aspnetsessionstate_topic3 假设您正在使用asp.net

  

页面通过将@Page指令的EnableSessionState属性设置为true来声明对会话状态的写访问权。 (这是默认设置。)但是,页面也可以对会话状态具有只读权限,例如,当EnableSessionState属性设置为ReadOnly时。在这种情况下,模块将在会话上保持读取器锁定,直到对该页面的请求结束。因此,可能会发生并发读数。

     

如果页面请求设置了读取器锁定,则同一会话中的其他同时处理的请求不能更新会话状态,但至少允许读取。这意味着当提供会话只读请求时,等待只读请求的优先级高于需要完全访问权限的请求。如果页面请求在会话状态上设置写入程序锁定,则无论是否必须读取或写入,都会阻止所有其他页面。例如,如果两个帧尝试写入Session,则其中一个帧必须等到另一个帧完成。

StackExchange.Redis只是HttpSessionState模块的包装器(或抽象)