最近在学习 levelDB 的源码,对其中做 caching 的部分有些疑问。 levelDB 在做 caching 的时候是把 key 对应的 sstable 扔到 cache 里(?),但是做 caching 的时候好像并没有同时把这个 sstable 里其他的 key 也扔进 cache 。这样的话下次遇到在同一个 sstable 里不同的 key 不就需要再重新从 disk 里先把 sstable 读出来了吗,这样存 sstable 的意义不就没了吗? 还是说 levelDB 可以确保在同一个 sstable 里的 key 的 hash 是一样的?求大神解答