类似于 memcached 的简单 C/C++ 进程内缓存

Ant*_*eru 1 c caching

我需要一个应该在进程内运行的简单(LRU)缓存。我找到了 memcached,它看起来不错,但似乎没有一种简单的方法可以在进程中托管它。我不需要分布式缓存,只需要一个简单的键/值存储和某种 LRU 行为和一些不错的分配器来限制碎片,因为条目大小变化很大(几个字节 - 几千字节。)肯定有这种事情的现有实现?应该是 C 或 C++。

Die*_*Epp 5

我讨厌以这种方式回答,但实现自己会相当简单。

  1. 分配器。使用mallocfree。它们确实有效,而且效果很好。这也使您可以更轻松地与程序的其余部分进行交互。

  2. 互斥 -> 哈希表、树或树。您可以使用链表来跟踪 LRU。不要尝试做花哨的无锁东西。

重量应该少于几百行,在美好的一天中将其敲掉。