gpt4 book ai didi

AppFabric 缓存 'Design' - 缓存单个项目或集合?

转载 作者:行者123 更新时间:2023-12-04 20:57:18 24 4
gpt4 key购买 nike

我们正在将我们的一个 Web 应用程序从单个服务器扩展到一个 Web 场。应用程序当前使用 Http 运行时缓存来缓存应用程序的引用数据。数据与产品目录“相似”:

  • 类别(即列表)
  • 产品(即列表)

  • 由于数据很少更新,我们还预先计算了一些查找
  • ProductsByCategory(即字典)

  • 集合当前缓存为整个对象...即整个列表/字典是获取和放置。通常使用集合,因为我通常需要填充下拉列表/列表框/等。

    引用数据需要在场中的服务器之间保持同步。进入 AppFabric...
  • 我们上面的缓存模型是否仍然适用于 AppFabric 缓存?我遇到的示例似乎将单个项目放入缓存中,而不是整个集合(“区域”用于批量获取操作)
  • 如果有的话,最好的方法是“一起”更新引用数据……即,如果刷新了类别,我需要刷新产品以反射(reflect)最新的类别。
  • 最佳答案

    对“批量放置”类型操作的支持有点,嗯,目前有限(阅读:不存在)。但稍微思考一下,这可能是正确的——如果你将一组对象扔到缓存中,它就不知道如何为它们提供有意义的键或标签(稍后会详细介绍)。您可以使用接受对象集合的扩展方法来伪造它,并查看每个对象上的 Name 或 Id 属性以将对象放入缓存中,但在幕后,它仍然会归结为将对象放入缓存中一次一个。

    然而,为了从缓存中取出一组对象,GetObjectsInRegion(regionname) 还有另一个选项。方法。如果,在将对象插入缓存的位置,您向其添加标签,例如对于产品,使用类别标记它,稍后您可以使用 GetObjectsByTag 取回特定标记的所有对象。方法。使用标签的好处(我认为)是您可以将任意数量的标签放在缓存中的对象上,例如对于产品,您可以使用类别和供应商以及例如价格区间来标记它。这使您在查询缓存项方面具有更大的灵活性 - 您可以通过任何单个标签进行查询,或者您可以使用 GetObjectsByAllTags 进行 AND/OR 查询。/GetObjectsByAnyTag方法。

    关于AppFabric 缓存 'Design' - 缓存单个项目或集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4201131/

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