gpt4 book ai didi

c# - 除了 MS 之外,c# 中的进程内缓存库?

转载 作者:行者123 更新时间:2023-11-30 13:05:40 30 4
gpt4 key购买 nike

除了 MS ASP.NET 缓存和 ENTLib 之外,是否有人知道用于进程内缓存的库至少具有两个功能:- 到期时间;- 对象依赖。

最佳答案

我为内存缓存实现了一个线程安全的伪 LRU。它比使用内存缓存更简单、更快 - 性能非常接近 ConcurrentDictionary(比内存缓存快 10 倍,并且命中的内存分配为零)。

LRU 的用法如下所示(就像字典一样,但您需要提供容量 - 它是有界缓存):

int capacity = 666;
var timeToLive = DateTime.FromMinutes(5);
var lru = new ConcurrentTLru<int, SomeItem>(capacity, timeToLive);

var value = lru.GetOrAdd(1, (k) => new SomeItem(k));

GitHub:https://github.com/bitfaster/BitFaster.Caching

Install-Package BitFaster.Caching

我的建议是在 LRU 中缓存对象图(例如,具有引用其他类的属性的类),这样您就可以通过简单地更新对象来驱逐依赖树中明确定义的节点上的东西。您自然会得到更容易理解且没有依赖循环的东西。

关于c# - 除了 MS 之外,c# 中的进程内缓存库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3683397/

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