go 库之 patrickmn/go-cache
💡
原文中文,约1400字,阅读约需4分钟。
📝
内容提要
patrickmn/go-cache 是一个轻量级、线程安全的内存缓存库,支持过期时间和后台清理,适合缓存临时数据。使用指针存储大型结构体可显著提高性能,指针操作比值操作快约16.6倍。
🎯
关键要点
- patrickmn/go-cache 是一个轻量级、线程安全的内存缓存库,基于 Go map 时间戳过期策略。
- 适合在单进程缓存临时数据,如配置、计算结果和短期会话。
- 每个条目可设置过期时间,并有可选的后台清理周期用于移除过期条目。
- 提供基本的缓存操作和过期回调功能。
- 支持将缓存序列化到文件并恢复。
- 内部使用 RWMutex 互斥锁保证并发安全。
- 建议对大型结构体使用指针存储,以提高性能,避免频繁的装箱和堆分配。
- go-cache 不限制缓存大小,高负载可能导致内存占用增加和 GC 触发。
- Benchmark 测试显示,指针方式的操作速度比值方式快约 16.6 倍。
➡️