我需要一个 C++ 中的缓存库,它有点像Guave 的加载缓存。
它应包括以下内容:
- 非阻塞访问
- 基于时间的驱逐
- 基于大小的驱逐
我查看了 STL、Boost 并四处搜索,但我找不到任何具有此功能的东西。
ExpireLRUCache<int, string> cache(
1024, // cacheSize
600000 // expiration (10 minutes)
);
cache.add( 1, "Cached string 1" );
cache.add( 10, "Cached string 10" );
Sleep( 601000 );
Shared_ptr<string> pVal = cache.get( 10 );
assert( pVal.isNull() ); // the element has expired