项目作者: ThreeKing2018

项目描述 :
go缓存
高级语言: Go
项目地址: git://github.com/ThreeKing2018/goCache.git
创建时间: 2019-06-24T03:39:54Z
项目社区:https://github.com/ThreeKing2018/goCache

开源协议:Apache License 2.0

下载


goCache

特点

  • 支持任意类型存储
  • 使用简单
  • 自动实现过期回收

文档

goCache文档

获取

go get github.com/ThreeKing2018/goCache

使用

  1. import "github.com/ThreeKing2018/goCache"
  2. //默认new
  3. c := goCache.NewDefault()
  4. //设置缓存键, 若键存在则覆盖
  5. c.Set("nation", "free_nation", 5 * time.Minute)
  6. //设置缓存键,与set不同,若键存在则false,代表存储失败; 返回true则存储成功,
  7. c.Add("lang", "golang", 1 * time.Minute)
  8. //获取某值
  9. v, err := c.Get("lang")
  10. if err != nil {
  11. log.Fatal(err)
  12. }
  13. if v != "golang" {
  14. log.Fatalln("not equal")
  15. }
  16. //查看某键详情
  17. v, t, b := c.Info("lang")
  18. fmt.Println(v, t, b)
  19. //查看共存储多少项
  20. fmt.Println(c.Count())
  21. //查看所有的缓存
  22. fmt.Println(c.Items())
  23. //删除键
  24. c.Delete("lang")
  25. //默认时间为1小时
  26. cache := goCache.New(1 * time.Hour)
  27. //设置键, 使用goCache.New设置的1小时过期时间
  28. cache.SetDefault("lang", "php")

设置值

  1. cache := NewDefault()
  2. cache.Set("lang", "golang", 10 * time.)

标准测试

  1. BenchmarkCache_Add-4 1000000 1074 ns/op 232 B/op 3 allocs/op
  2. BenchmarkCache_Add-4 1000000 1176 ns/op 232 B/op 3 allocs/op
  3. BenchmarkCache_Add-4 1000000 1109 ns/op 232 B/op 3 allocs/op
  4. BenchmarkCache_Set-4 1000000 1090 ns/op 232 B/op 3 allocs/op
  5. BenchmarkCache_Set-4 2000000 1063 ns/op 232 B/op 3 allocs/op
  6. BenchmarkCache_Set-4 1000000 1005 ns/op 232 B/op 3 allocs/op
  7. PASS

参考