加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
cache_test.go 1.57 KB
一键复制 编辑 原始数据 按行查看 历史
nanbian 提交于 2020-09-10 16:28 . 本地缓存实现
package cache
import (
"fmt"
"github.com/google/go-cmp/cmp"
"testing"
)
func TestFifoCache(t *testing.T) {
cache := NewFifoCache(512)
key := "k1"
cache.Set(key, 1)
fmt.Printf("cache 元素个数:%d, 占用内存 %d 字节\n\n", cache.Len(), cache.UseBytes())
val := cache.Get(key)
fmt.Println(cmp.Equal(val, 1))
cache.DelOldest()
fmt.Printf("cache 元素个数:%d, 占用内存 %d 字节\n\n", cache.Len(), cache.UseBytes())
}
func TestLfuCache(t *testing.T) {
cache := NewLfuCache(512)
for i := 0; i < 10; i++ {
key := fmt.Sprintf("key-%d", i)
cache.Set(key, i)
}
fmt.Printf("cache 元素个数:%d, 占用内存 %d 字节, key-9 = %v\n\n", cache.Len(), cache.UseBytes(), cache.Get("key-9"))
for i := 0; i < 3; i++ {
key := fmt.Sprintf("key-%d", i)
cache.Set(key, i)
}
fmt.Printf("cache 元素个数:%d, 占用内存 %d 字节, key-3 = %v\n\n", cache.Len(), cache.UseBytes(), cache.Get("key-3"))
cache.Del("key-3")
fmt.Printf("cache 元素个数:%d, 占用内存 %d 字节, key-3 = %v\n\n", cache.Len(), cache.UseBytes(), cache.Get("key-3"))
cache.DelOldest()
fmt.Printf("cache 元素个数:%d, 占用内存 %d 字节, key-9 = %v\n\n", cache.Len(), cache.UseBytes(), cache.Get("key-9"))
}
func TestLruCache(t *testing.T) {
cache := NewLruCache(512)
key := "k1"
cache.Set(key, 1)
fmt.Printf("cache 元素个数:%d, 占用内存 %d 字节\n\n", cache.Len(), cache.UseBytes())
val := cache.Get(key)
fmt.Println(cmp.Equal(val, 1))
cache.DelOldest()
fmt.Printf("cache 元素个数:%d, 占用内存 %d 字节\n\n", cache.Len(), cache.UseBytes())
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化