gpt4 book ai didi

c# - 具有一定数量项目的 MemoryCache

转载 作者:太空狗 更新时间:2023-10-30 00:33:21 26 4
gpt4 key购买 nike

MemoryCache 是否具有缓存固定数量项目的功能?

例如我们只对从数据库中缓存 2000 个项目感兴趣。在不断向缓存中添加项目的同时,如果超过指定的项目数,则可以删除最旧的项目。

如果不是,我们是否必须使用另一个线程定期进行内务管理?

最佳答案

它没有任何内置的东西来限制对象的数量。相反,它会检查正在使用的内存量,并将其与 CacheMemoryLimit 进行比较.如果超过 CacheMemoryLimit,它将丢弃较旧的项目。您还可以通过 CacheItemPolicy 将项目设置为在一定时间后自动过期。 .

如果您真的将其用作内存缓存,那么这些方法都更有意义。换句话说,如果您担心内存限制和获取数据的成本之间的权衡,这些是确定何时从缓存中逐出项目的好方法。所以问问自己:

Am I really trying to use this as a MemoryCache? Why do I even care if only 2000 items are loaded from the database?

如果您担心内存开销,或者如果您担心项目会过时,还有其他(更好)的方法来管理缓存,而不是指定多个对象。如果您有一些自定义原因要在数据结构中保留特定数量的对象,请考虑使用不同的类。

关于c# - 具有一定数量项目的 MemoryCache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12324710/

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