2018-09-15 16:40:13 +08:00
|
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
2019-04-03 00:03:46 +08:00
|
|
|
|
"fmt"
|
|
|
|
|
|
"time"
|
2019-07-29 21:01:19 +08:00
|
|
|
|
|
|
|
|
|
|
"github.com/gogf/gf/os/gcache"
|
2018-09-15 16:40:13 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
func main() {
|
2019-04-03 00:03:46 +08:00
|
|
|
|
// 设置LRU淘汰数量
|
|
|
|
|
|
c := gcache.New(2)
|
2018-09-15 16:40:13 +08:00
|
|
|
|
|
2019-04-03 00:03:46 +08:00
|
|
|
|
// 添加10个元素,不过期
|
|
|
|
|
|
for i := 0; i < 10; i++ {
|
|
|
|
|
|
c.Set(i, i, 0)
|
|
|
|
|
|
}
|
|
|
|
|
|
fmt.Println(c.Size())
|
|
|
|
|
|
fmt.Println(c.Keys())
|
2018-09-15 16:40:13 +08:00
|
|
|
|
|
2019-04-03 00:03:46 +08:00
|
|
|
|
// 读取键名1,保证该键名是优先保留
|
|
|
|
|
|
fmt.Println(c.Get(1))
|
2018-09-19 09:47:50 +08:00
|
|
|
|
|
2019-04-03 00:03:46 +08:00
|
|
|
|
// 等待一定时间后(默认1秒检查一次),元素会被按照从旧到新的顺序进行淘汰
|
|
|
|
|
|
time.Sleep(2 * time.Second)
|
|
|
|
|
|
fmt.Println(c.Size())
|
|
|
|
|
|
fmt.Println(c.Keys())
|
|
|
|
|
|
}
|