-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_ccache1.go
67 lines (57 loc) · 1.73 KB
/
test_ccache1.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package main
import (
"fmt"
"time"
"github.com/karlseguin/ccache/v2"
)
func main() {
// 创建一个新的缓存实例
cache := ccache.New(ccache.Configure().MaxSize(3))
// 添加一个键值对到缓存中
cache.Set("key", uint8(1), time.Second * 10)
cache.Set("key1", uint8(1), time.Second * 10)
cache.Set("key2", uint8(1), time.Second * 10)
// 从缓存中获取值
item := cache.Get("key")
if item != nil {
fmt.Println("从缓存中获取到的值:", item.Value().(uint8))
} else {
fmt.Println("缓存中没有找到对应的值")
}
item = cache.Get("key")
if item != nil {
fmt.Println("从缓存中获取到的值:", item.Value().(uint8))
} else {
fmt.Println("缓存中没有找到对应的值")
}
//time.Sleep(time.Second * 10)
cache.Set("key3", uint8(1), time.Second * 10)
cache.ForEachFunc(func(key string, i *ccache.Item) bool {
fmt.Printf("%v %#v\n", key, i)
return true
})
// 从缓存中获取值
item = cache.Get("key")
if item != nil {
fmt.Println("从缓存中获取到的值:", item.Value().(uint8))
} else {
fmt.Println("缓存中没有找到对应的值")
}
// 等待一段时间,使缓存项过期
// time.Sleep(time.Second * 40)
item = cache.Get("key")
if item != nil {
fmt.Println("11从缓存中获取到的值:", item.Value().(uint8))
} else {
fmt.Println("111缓存中没有找到对应的值")
}
// 再次尝试获取值
cache2 := ccache.New(ccache.Configure().MaxSize(1000).ItemsToPrune(100))
cache2.Set("abcd", uint8(1), time.Second)
item = cache2.Get("abcd")
if item != nil {
fmt.Println("从缓存中获取到的值:", item.Value().(uint8))
} else {
fmt.Println("缓存中没有找到对应的值")
}
}