我需要在C应用程序(在*nix环境中)中将大量(但可变)的较小文件(1千字节到10兆字节)缓存在内存中。由于我不想耗尽所有内存,我想设置一个硬内存限制(比如说64兆字节),并将文件推入哈希表中,以文件名作为键,并且处理最少使用的条目。我相信我需要的是一个LRU缓存。
实际上,我不想自己动手,所以如果有人知道哪里可以找到可行的库,请指引一下?如果找不到,能否提供一个简单的C语言LRU缓存示例?相关帖子表明需要使用双向链表的哈希表,但我甚至不清楚双向链表如何保持LRU。
顺便说一下:我意识到这几乎就是memcache的功能,但对我来说不是一个选项。我还查看了源代码,希望能够让自己了解LRU缓存,但没有成功。
实际上,我不想自己动手,所以如果有人知道哪里可以找到可行的库,请指引一下?如果找不到,能否提供一个简单的C语言LRU缓存示例?相关帖子表明需要使用双向链表的哈希表,但我甚至不清楚双向链表如何保持LRU。
顺便说一下:我意识到这几乎就是memcache的功能,但对我来说不是一个选项。我还查看了源代码,希望能够让自己了解LRU缓存,但没有成功。