菲尔,我非常感谢你的回答。
至于我关于区域的问题,我试图掌握 API 的功能,而不是服务/应用程序/平台的架构或基础设施。
因此,我试图确定在不知道精确键或希望返回多个具有相关或相似键的对象时返回对象的能力有哪些限制。
当我检查 API 时,我没有看到任何“查询语言”,并且似乎接近我上面描述的功能的唯一命令与“区域”相关联。
从围绕如何在平台中实现区域的描述的术语中,我推断(正确还是错误?)当一个区域被定义(创建?)时,它将仅部署在一个缓存服务器中的多个缓存服务器上。 AppFabric 的多服务器实现。
也就是说,在我看来,所描述的是 AppFabric 中的“命名空间”[区域]对于 AppFabric 平台展示的任何“索引”功能都是基础。而且这个“命名空间”只能在单个服务器的边界内实现,有点像 SharePoint Search 最初是单个服务器,后来在多个服务器上启用。
综上所述,我猜测搜索依赖于基于区域的索引功能,因此“可搜索”键必然会导致缓存在“可搜索”区域中的所有数据都放置在一个区域中的限制,并且将导致数据在单个服务器上的区域“集中”。
我的问题是为了确认或阐明我的理解。
到目前为止,你已经回答了我的许多问题,但不是一个准确的问题。
谢谢,
金博尔
似乎“标签”允许我们将“搜索词”与放置在 Velocity 缓存空间中的对象相关联。
但是,这些只能在“区域”内查询。
此外,区域以某种方式将缓存中对象的局部性限制为单个服务器(或者可能是类似的东西)。
因此,如果缓存项的唯一 ID 未持久保存或持续提供给应用程序(该应用程序在缓存中存储和检索对象),这似乎使得执行任何操作变得困难。
无论如何,我看不到一种简单的方法来“清理”对象缓存或在整个缓存中查找可能在缓存键中共享某些前缀、后缀或中缀值的对象,以便我可以清除缓存例如,在单元测试中重复创建的对象。
而且我不确定区域与单个服务器缓存位置相关联的后果。
因此,对于以下问题,我将不胜感激:
- 使用区域时的“分布式缓存”(称为“分区”缓存??)和“本地缓存”有什么区别?
1.a. 特别是,分布式缓存中面向区域的值是否可以通过配置为“查看”整个缓存空间的缓存工厂可见?
- 创建和删除“区域”的操作是否足够有效,以至于为每个需要缓存的对象包创建一个区域和一组标签是合理的?
2.a. 或者这是否只是将“搜索对象”的范围问题推到了链上,因为 DataCache 对象向下查询区域和标签的能力与查询对象本身的缓存键一样有限。
谢谢,
斯塔托