介绍

轻量级的内存 KV 存储, 由哈希图和最小堆实现, 没有特别为 GC 做优化. 拥有 O(1)的读取效率, O(logN)的写入效率. 缓存淘汰策略: 检测到过期或者容量溢出时, 堆顶元素会被清除一部分, 每次至多删除 16*1000(默认值, 后面省略)个 key, 30s 检查一次.

简单压测

go test -benchmem -run=^$ -bench . github.com/lxzan/memorycache/benchmark
goos: darwin
goarch: arm64
pkg: github.com/lxzan/memorycache/benchmark
BenchmarkSet/10000-8            13830640                87.25 ns/op            0 B/op          0 allocs/op
BenchmarkSet/1000000-8           3615801               326.6 ns/op            58 B/op          0 allocs/op
BenchmarkGet/10000-8            14347058                82.28 ns/op            0 B/op          0 allocs/op
BenchmarkGet/1000000-8           3899768               262.6 ns/op            54 B/op          0 allocs/op
PASS
ok      github.com/lxzan/memorycache/benchmark  13.037s

仓库地址:

https://github.com/lxzan/memorycache