Step-by-step

2020-12-20

2020-12-20  本文已影响0人  预眸丶

在自制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)的删除。

上一篇下一篇

猜你喜欢

热点阅读