9.go开源cache2go项目笔记——dataloader调用
来源:互联网 发布:阿里云 腾讯云 香港 编辑:程序博客网 时间:2024/05/17 08:47
9.go开源cache2go项目笔记——dataloader调用
测试dataloader相关功能。
1 代码
packagemain
import(
"fmt"
"strconv"
"github.com/muesli/cache2go"
)
funcmain(){
cache:=cache2go.Cache("myCache")
cache.SetDataLoader(func(keyinterface{},args...interface{})*cache2go.CacheItem{
val:="Thisisatestwithkey"+key.(string)
item:=cache2go.CreateCacheItem(key,0,val)
return&item
})
fori:=0;i<10;i++{
res,err:=cache.Value("someKey_"+strconv.Itoa(i))
iferr==nil{
fmt.Println("Foundvalueincache:",res.Data())
}else{
fmt.Println("Errorretrievingvaluefromcache:",err)
}
}
}
2 执行如下
Found value in cache: Thisis a test with key someKey_0
Found value in cache: Thisis a test with key someKey_1
Found value in cache: Thisis a test with key someKey_2
Found value in cache: Thisis a test with key someKey_3
Found value in cache: Thisis a test with key someKey_4
Found value in cache: Thisis a test with key someKey_5
Found value in cache: Thisis a test with key someKey_6
Found value in cache: Thisis a test with key someKey_7
Found value in cache: Thisis a test with key someKey_8
Found value in cache: This is a test with key someKey_9
3 代码说明
cache:=cache2go.Cache("myCache")创建一个CACHE TABLE。
cache.SetDataLoader(func(keyinterface{},args...interface{}) 设置函数loadData函数,入参是CACHE ITEM的指针。当从CACHE TABLE中获取不存在的键时候会调用该函数,其中调用CreateCacheItem函数来创建CACHE ITEM。
然后一个循环10次,查找CACHE值,因为查找之前没有加载所以每次查找都不存在,然后就调用SetDataLoader(这个通过value函数来调用loadData)来创建CACHE。
- 9.go开源cache2go项目笔记——dataloader调用
- 8.go开源cache2go项目笔记——callbacks调用
- 10.go开源cache2go项目笔记——mycachedapp调用
- 2.go开源cache2go项目笔记——项目介绍
- 1.go开源cache2go项目笔记——简单使用-
- 3.go开源cache2go项目笔记——cachetable文件
- 5.go开源cache2go项目笔记——cache文件
- go开源cache2go项目蛤蟆笔记——简单使用-
- 4.go开源cache2go项目笔记——cacheitem文件
- 6.go开源cache2go项目笔记——cache_test文件
- 7.go开源cache2go项目笔记——benchmark_test文件
- 9.go开源groupcache项目笔记——lru代码
- 14.go开源groupcache项目笔记——peers代码
- 15.go开源groupcache项目笔记——sinks代码
- 4.go开源groupcache项目笔记——关于strconv
- 5.go开源groupcache项目笔记——关于testing
- 6.go开源groupcache项目笔记——consistenthash_test代码
- 8.go开源groupcache项目笔记——groupcachepb代码
- XML深度解析
- RESTful API开发神器swagger与spring-boot的快速整合使用
- Windows下安装TensorFlow
- 理解RESTful架构
- C#3.0语法
- 9.go开源cache2go项目笔记——dataloader调用
- poj 3264 Balanced Lineup(线段树+RMQ)
- Anaconda 安装和使用
- 关于字符串拼接的问题
- 10.go开源cache2go项目笔记——mycachedapp调用
- node跨域问题
- POJ 2470 Relatives (欧拉函数)
- jAVA SpringBoot(1)---pom.xml文件基本配置
- [BZOJ]4753: [Jsoi2016]最佳团体 01分数规划+树形DP