lru 用Go编写的磁盘上的LRU缓存
卢鲁这个库是一种管理缓存以在磁盘上存储字节的简单方法。这个缓存具备几个关键特点:
-
不允许更新:目前尚未实现更新机制。
-
始终遵守限制:缓存不会超过设定的限制,在写入磁盘前会进行检查。
-
初始化为空:虽然不会主动删除内容,但两个不同实例的两个键可能会有相同的文件名,因此最终存储的值会与第一次写入磁盘的值相同。
-
goroutine安全:采用锁定机制确保线程安全。
对于进一步了解LRU页面缓存如何在磁盘上运作,您可以参考相关文档。
安装
go get github.com/dakis/lru
初始化缓存
cache := lru.New(CACHE_SIZE, "/tmp")
defer cache.Clear()
go get github.com/dakis/lru
cache := lru.New(CACHE_SIZE, "/tmp")
defer cache.Clear()
如果您对磁盘存储的管理有更深入的兴趣,可以访问管理磁盘存储的资料,获取更多详细信息。
获取值
cache := lru.New(CACHE_SIZE, "/tmp")
defer cache.Clear()
if data, ok := cache.Get("key"); ok {
fmt.Println("value was retrieved")
}
cache := lru.New(CACHE_SIZE, "/tmp")
defer cache.Clear()
if data, ok := cache.Get("key"); ok {
fmt.Println("value was retrieved")
}
想了解如何使用LRU缓存代码,可以参考LRU缓存代码的实现。
下载地址
用户评论