Boost LRU-Cache使用方法简介

    缓存是提升系统运行效率的经常使用组件,能够将“有效的”业务数据直接返回用户,避免繁琐的计算过程。除了Redis、MemCache等经常使用缓存系统,应用程序内部也能够根据须要设置必定容量的缓存,减小跨进程调用,提升效率。ios

    LRU是经常使用的缓存策略,能够将访问最 频繁的数据保存在有限的缓存中,提升缓存命中率。算法

    在C++中,能够经过map来保存数据键值对,并经过list将最近使用的数据保存在一端,从list的另外一端来清除过时数据的方法实现一个缓存系统。缓存

    然而,咱们不必本身再造一个轮子。Boost-1.65.1版本开始引入了lru_cache算法,经过模板的方式能够方便的实例化出各类类型的缓存对象。spa

    下面简单介绍boost lru_cache的使用方法。code

    

#lru_cache头文件,这是个header-only库,不须要其余模块
#include <string>
#include <iostream>
using namespace std;
#include <boost/compute/detail/lru_cache.hpp>
 
int main()
{
     const int iCacheSize=100;
     #初始化时设置缓存容量
     boost::compute::detail::lru_cache<string, string> ssCache(iCacheSize);
 
     #插入数据
     ssCache.insert( "ZhangSan" , "Beijing" );
     ssCache.insert( "LiSi" , "Shanghai" );
 
     #查找并获取数据
     string s( "ZhangSan" );
     if (ssCache.contains(s))
     {
         #注意!get方法返回的是一个boost::optional<string>对象,而不是直接返回存入其中的Value类型的对象!
         boost::optional<string> o_Region=ssCache.get(s);
         #咱们能够经过boost::optional<string>的get()来获取Value对象
         string sRegion=o_Region.get();
         cout << s << " comes from " << sRegion << endl;
     }
 
     return 0;
}

零一积流|IT参考 原创文章,转载请注明出处: http://www.it-refer.com/2017/11/13/boost-lru-cache-usage对象

相关文章
相关标签/搜索