MemoryCache默认带有默认缓存,可以创建其他命名缓存。
似乎在不同实例中隔离不同进程的结果的缓存可能有好处。例如,对索引的查询结果可以缓存在“IndexQueryResult”缓存中,并且数据库查询的结果可以缓存在“DatabaseQueryResult”中缓存。这是相当人为的,但解释了原则。
导致驱逐的一个缓存上的内存压力是否会影响其他缓存? .Net管理多个缓存的方式与管理多个缓存的方式有什么不同吗?
我是否在浪费时间考虑多个缓存的想法,或者这样做是否真的有价值?
答案 0 :(得分:5)
我不能说出前几个问题,我很想听听那些问题的答案。但是,我可以说到目前为止我们在产品中使用多个缓存已经有了很好的体验。以下是我看到的好处:
关于第二点:我们还构建了一个UI来公开系统中的所有缓存实例,并允许我们通过单击按钮清除它们中的任何一个。当我们需要直接对数据库进行更改并且需要系统在不重新启动服务器的情况下获取这些更改时,这会派上用场。同样,如果我们只使用单个缓存,那么我们就不能那么精确:我们必须清除系统范围内的所有缓存值,而不仅仅是与我们修改的数据类型相关联的值。