FreeCache Go 语言的缓存库 FreeCache

xuanbao • 4952 次点击    
这是一个分享于 的项目,其中的信息可能已经有所发展或是发生改变。
FreeCache 是一个 Go 语言的缓存库,无额外的 GC 负荷。数百万对象的垃圾收集延迟仅在数百毫秒。 特性: * 可存储数以百万计条目 * 零垃圾收集负荷 * 高并发而且线程安全的访问 * 纯 Go 语言实现 * 支持对象失效 * 近乎 LRU 的算法 * 严格限制内存使用 * 提供一个测试用的服务器,支持一些基本 Redis 命令 示例代码: <pre class="brush:cpp ;toolbar: true; auto-links: false;">cacheSize := 1024*1024 cache := freecache.NewCache(cacheSize) key := []byte(&#34;abc&#34;) val := []byte(&#34;def&#34;) 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(&#34;deleted key &#34;, affected) fmt.Println(&#34;entry count &#34;, cache.EntryCount())</pre> 注意事项: * 推荐使用 Go 1.4 版本 * 内存是预先分配的 * 如果你分配的内存非常大,那么应该设置 `debug.SetGCPercent()` 到一个很小的比例来获得正常的 GC 频率 FreeCache 通过减少指针的数量来避免 GC 符合,不管对象有多少,指针最多 512 个。
授权协议:
MIT
开发语言:
Google Go 查看源码»
操作系统:
跨平台
4952 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传