xiaofei chain

typedef struct yumei_cache_map_data_s yumei_cache_map_data_t;struct yumei_cache_map_data_s{int key[8];int times;int start_time;void* data;yumei_cache_map_data_t* next;};

times是指这个数据被查询过多少次,start_time 则是开始查询时间,这两个参数是为了新陈代谢用的,比如一个数据在昨天天被查了30次,times=30,在昨天会被当

成频繁数据加到缓存里,但是今天一次都没有查过,这样的数据就要被淘汰出去。

定义完了数据结构,,就剩下算法了,主要推荐两种:

1.红黑树

2.hash map

C里用的红黑树比较多,另一些语言比如JAVA,Phthon用的 hash map较多,两者各有优点。

红黑树的查询速度不见得会比 hash的快,但是会很稳定,后面文章我再讲一下吧。

架构设计讲求透明性,上面定义的这些结构是对外不可见的,对外的文件接口应该是这样:

int yumei_cache_module_init();int yumei_cache_module_release();int yumei_cache_insert( int *key, void* data );int yumei_cache_get( int* key, void** data );int yumei_cache_del( int* key );

在模块内部定义一个全局变量就可以了。

如果追求通用性,则需要重新定义接口:

孤独是一种无奈的选择,孤独是因为没有找到合适的同行者,

xiaofei chain

相关文章:

你感兴趣的文章:

标签云: