Go 语言的缓存库 FreeCache

MIT
Google Go
跨平台
2015-04-30
红薯222

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

特性:

  • 可存储数以百万计条目

  • 零垃圾收集负荷

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

  • 纯 Go 语言实现

  • 支持对象失效

  • 近乎 LRU 的算法

  • 严格限制内存使用

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

示例代码:

cacheSize := 1024*1024
cache := freecache.NewCache(cacheSize)
key := []byte("abc")
val := []byte("def")
expire := 60 // expire in 60 seconds
cache.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())

注意事项:

  • 推荐使用 Go 1.4 版本

  • 内存是预先分配的

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

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

加载中
此软件有 1 条评论,请先登录后再查看。

暂无资讯

暂无问答

[Go] freecache 设置 SetGCPercent 的作用

你需要对 freecache 有一个大致了解,freecache 的内存空间是预分配的。 假设你的程序占用了 50M 内存,那么开启 freecache 预分配 200M 空间,总共下来就是 250M 空间被占用。 SetGCPercent...

06/04 09:58
9
0
[Go] 内存缓存库对比, groupcache, go-cache, freecache, cache2go, fastcache

groupcache 分布式缓存和缓存填充库,在许多情况下都可以用来替代内存缓存节点池,不支持 expire。 go-cache  内存中键值存储/缓存库(类似于Memcached),适用于单机应用程序。 freecache ...

06/09 07:58
89
0
go 缓存机制

go是一个非常高效的语言, 对并发的处理非常的好, 对于内存方面沿用类似java的GC方式进行内存的回收. 但是GO的GC的回收非常的耗时.所以提出了高效缓存的机制. 现在高效缓存包括:Bigcache Fre...

2019/04/01 11:55
365
0
Cache模拟器的设计与实现

csim.c   实验一文件,根据存放程序对数据的访问记录的输入文件内容,模拟cache,获得模拟结果。变量与函数解析如下: 变量解析 verbosity:是否输出每一行记录的命中、缺失、替换情况,一...

05/23 10:53
36
0
golang 常用库

golang至今已有九年了,其可用的库非常丰富。 github.com/Arafatk/DataViz   对于常用数据结构的可视化,使用的graphviz。 github.com/astaxie/beego   beego 是一个快速开发 Go 应用的 ...

2018/11/22 20:42
57
0
Android PackageManagerService详细分析

Android PackageManagerService详细分析

2014/01/07 18:18
976
0
PackageManagerService详解

本篇主要分析了系统启动阶段包管理服务的启动流程,其中的几个接口在 apk 安装时也会被调用。包管理服务启动时主要做的工作大致有如下几方面: 1. 建立 java 层的 installer 与 c 层的 instal...

2015/08/14 22:55
43
0
PhalGo-介绍

phalgo是一个Go语言的一体化开发框架,主要用于API开发应为使用ECHO框架作为http服务web程序一样可以使用,牛顿曾经说过"如果我比别人看得远,那是因为我站在巨人的肩膀上",既然Golang有那么多优...

2016/05/23 10:12
1.4K
2
[深入理解Android卷二 全文-第四章]深入理解PackageManagerService

由于《深入理解Android 卷一》和《深入理解Android卷二》不再出版,而知识的传播不应该因为纸质媒介的问题而中断,所以我将在OSC博客中全文转发这两本书的全部内容 第4章 深入理解PackageMa...

2015/08/03 13:40
1.1K
0

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部