https://github.com/520mianxiangduixiang520/agingmap
基于 sync.Map 的一个带过期时间的 Map
https://github.com/520mianxiangduixiang520/agingmap
Last synced: 3 months ago
JSON representation
基于 sync.Map 的一个带过期时间的 Map
- Host: GitHub
- URL: https://github.com/520mianxiangduixiang520/agingmap
- Owner: 520MianXiangDuiXiang520
- License: mit
- Created: 2021-01-31T09:54:16.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-03-05T05:16:28.000Z (about 4 years ago)
- Last Synced: 2025-01-17T00:47:18.949Z (5 months ago)
- Language: Go
- Size: 15.6 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
基于 sync.Map 的一个带过期时间的 Map
```go
go get -u github.com/520MianXiangDuiXiang520/agingMap
```## 使用
```go
packege mainimport (
"github.com/520MianXiangDuiXiang520/agingMap"
"time"
"fmt"
)func main() {
// 每秒遍历 50%,过期删除
// am := NewAgingMap()
// 惰性删除
// am := NewWithLazyDelete()
am := NewBaseAgingMap(time.Second * 5, 0.7)
keyChan := make(chan int64, 10)
go func() {
for {
key := time.Now().UnixNano()
keyChan <- key
am.Store(key, 1, time.Second)
}
}()
for {
key := <- keyChan
val, ok := am.Load(key)
if ok {
fmt.Println(val)
}
}
}
```