在分布式缓存场景中,通常建议使用还是避免存储在缓存中的单片对象?最佳实践缓存:单片缓存数据与细粒度缓存数据
我正在使用EAV架构支持的服务,因此我们将缓存放在适当位置以最大限度地减少从数据库中检索所有主要记录和相应属性集合时EAV施加的感知性能不足。我们将在服务启动时启动缓存。
我们没有特别频繁地调用所有产品 - 客户端在首次使用对象映射填充本地缓存后调用差异。为了执行该差异,分布式缓存将需要反映对数据库中各个记录的更改,这些记录是在任意基础上执行的,并且需要根据客户端要求的差异来处理更改。
首先想到的是使用列表或字典来存储分布式缓存中的记录 - 获取整个集合,在本地内存中操作或搜索它,将整个集合放回到缓存中。后来的想法导致了用单独的记录填充缓存的想法,每个记录都以一种方式使它们从缓存中可单独检索/可更新。这导致想知道哪些方法在更新所有数据时会更高效。
我们使用的是Windows Server AppFabric,因此我们可以使用BulkGet操作。但我不相信有批量更新的概念。
关于分布式缓存对象大小是否存在普遍的想法?如果我们对所有项目有更多的请求,我会担心网络带宽,但至少现在对所有项目的需求应该相当小。
是的,我们将测试和分析每种方法,但我想知道是否有任何超出当前思维范围的内容在此考虑。
在最近的.Net Rocks播客中,有一些关于这个话题的讨论,其中客人是Udi Dahan。播客是关于CQRS的,他们讨论了模式的一个关键优势是如何实现更好的缓存。可能会给你一些想法... – 2011-04-22 00:29:17