FreeCache Go 语言的缓存库

我要开发同款
匿名用户2015年04月30日
53阅读
所属分类Google Go、程序开发、缓存系统
授权协议MIT

作品详情

FreeCache是一个Go语言的缓存库,无额外的GC负荷。数百万对象的垃圾收集延迟仅在数百毫秒。

特性:

可存储数以百万计条目

零垃圾收集负荷

高并发而且线程安全的访问

纯Go语言实现

支持对象失效

近乎LRU的算法

严格限制内存使用

提供一个测试用的服务器,支持一些基本Redis命令

示例代码:

cacheSize := 1024*1024cache := freecache.NewCache(cacheSize)key := []byte("abc")val := []byte("def")expire := 60 // expire in 60 secondscache.Set(key, val, expire)got, err := cache.Get(key)if err != nil {    fmt.Println(err)} else {    fmt.Println(string(got))}affected := cache.Del(key)fmt.Println("deleted key ", affected)fmt.Println("entry count ", cache.EntryCount())

注意事项:

推荐使用Go1.4版本

内存是预先分配的

如果你分配的内存非常大,那么应该设置debug.SetGCPercent()到一个很小的比例来获得正常的GC频率

FreeCache通过减少指针的数量来避免GC符合,不管对象有多少,指针最多512个。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论