gpt4 book ai didi

caching - 为什么使用AppFabric时缓存对象存储在 session 中?

转载 作者:行者123 更新时间:2023-12-02 10:05:17 26 4
gpt4 key购买 nike

今天我第一次尝试了 AppFabric - 缓存(又名 Ms Velocity),并查看了 msdn 虚拟实验室。

https://cmg.vlabcenter.com/default.aspx?moduleid=4d352091-dd7d-4f6c-815c-db2eafe608c7

其中有我不明白的代码示例。它创建一个缓存对象并将其存储在 session 状态中。文档只是说:

We need to store the cache object in Session state and retrieve the same instance of that object each time we need to use it.

这不是我过去在 ASP.NET 中使用缓存的方式。这种模式的原因是什么?我必须使用它吗?

private DataCache GetCache()
{
DataCache dCache;
if (Session["dCache"] != null)
{
dCache = (DataCache)Session["dCache"];

if (dCache == null)
throw new InvalidOperationException("Unable to get or create distributed cache");
}
else
{
var factory = new DataCacheFactory();
dCache = factory.GetCache("default");
Session["dCache"] = dCache;
}

return dCache;
}

最佳答案

这是因为 DataCacheFactory 的创建成本很高 - 您不希望每次访问缓存时都创建它的实例。

他们在实验室中向您展示的是如何创建 DataCacheFactory 实例一次来获取 DataCache 实例,然后将该 DataCache 实例存储在 session 状态中,以便您每次访问缓存时都可以返回到该实例。

当然,这仍然意味着您要为每个用户创建一个 DataCacheFactory 实例,我认为将其存储在应用程序状态中会是更好的设计。

关于caching - 为什么使用AppFabric时缓存对象存储在 session 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1996381/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com