2020-12-20

在自制KVDB库中:

为了get的操作使用了hashmap去存储key和key所对应的文件地址偏移值,相对于原先的遍历整个文件可以大大加快我们get的速度。

又由于28原理,少数关键原则,少量数据是我们经常要使用到的,故而我们使用内存去存取,而LRU机制便是是通过一个list去缓存当前经常使用到的kv值,不用频繁的访问内存。

LRU机制需要两个数据结构:1.list 2.hashmap。

而LRU所需要的的hashmap可以合并到为了加快get操作而使用的hashmap中,需要存储(list<pair<string,string>>::iterator),即该节点在链表中的位置。方便后期O(1)的删除。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容