/expiredmap

Golang 实现的有过期策略且线程安全的 map(支持泛型)。

Primary LanguageGo

ExpiredMap

Golang 实现的有过期策略且线程安全的 map(支持泛型)。

适用场景:内存级缓存,减少 Redis 的 I/O 次数,减轻 Redis 的连接数压力。

Key 的删除策略:

  • 主动删除(定时器)
  • 惰性删除(访问 Key 时检查过期时间)

安装:

go get github.com/duiying/expiredmap

使用:

// 生成一个 key 是 int64 类型、value 是 *cacheItem 类型的 map
// 最大容量为 10,每隔 5s 定时检查 Key 的过期时间(根据 Key 的数量适当调整定时检查时间,防止给 CPU 造成压力)
em := expiredmap.NewExpiredMap[int64, *cacheItem](10, time.Second*5)