即将过期的并发词典

本文关键字:并发 过期 | 更新日期: 2023-09-27 18:32:56

嗨,我正在研究具有过期功能的并发字典。

我们有一个对象列表,这些对象可以通过添加和删除从许多不同的线程中访问。我们还希望项目的到期时间,例如 60 秒。(如果我们可以侦听一个事件,告诉我们哪些项目已过期并从列表中删除,那就太好了)。

我们还需要查找像字典一样非常快。

该列表将包含数十万个对象。

所以它就像一个ConcurrentDictionary,但具有过期功能。

内存缓存可以是什么东西吗?

还是其他值得关注的东西?

即将过期的并发词典

MemoryCache看起来很理想,尤其是

此类型是线程安全的。

免责声明:我是下面提到的 OSS 包的贡献者之一!

MemoryCache的缺点是:

  • 非泛型(导致基元类型的键和值的装箱/取消装箱)
  • 带有膨胀(操作系统性能计数器,启发式和黑魔法,以决定何时在"内存压力"下驱逐未过期的项目等)
  • 仅使用字符串键(每次搜索时分配)
  • 扫描按键时快速耗尽内存

这些是我们编写 FastCache 的确切原因,写入速度提高了 10 倍,读取速度提高了 6 倍等。基本上就是这样 - 一个即将到期的ConcurrentDictionary.