10.go开源cache2go项目笔记——mycachedapp调用
来源:互联网 发布:阿里云 腾讯云 香港 编辑:程序博客网 时间:2024/05/29 10:21
10.go开源cache2go项目笔记——mycachedapp调用
1 代码如下
packagemain
import(
"fmt"
"time"
"cache2go-master"
)
typemyStructstruct{
text string
moreData[]byte
}
funcmain(){
cache:=cache2go.Cache("myCache")
val:=myStruct{"Thisisatest!",[]byte{}}
cache.Add("someKey",5*time.Second,&val)
res,err:=cache.Value("someKey")
iferr==nil{
fmt.Println("Foundvalueincache:",res.Data().(*myStruct).text)
}else{
fmt.Println("Errorretrievingvaluefromcache:",err)
}
time.Sleep(6*time.Second)
res,err=cache.Value("someKey")
iferr!=nil{
fmt.Println("Itemisnotcached(anymore).")
}
cache.Add("someKey",0,&val)
cache.SetAboutToDeleteItemCallback(func(e*cache2go.CacheItem){
fmt.Println("Deleting:",e.Key(),e.Data().(*myStruct).text,e.CreatedOn())
})
cache.Delete("someKey")
cache.Flush()
}
2 执行
Found value in cache: This is a test!
Item is not cached (anymore).
Deleting: someKeyThis is a test! 2016-07-17 22:50:06.746398 +0800 CST
3 代码说明
先创建一个CACHETABLE。
cache.Add("someKey",5*time.Second,&val)增加一个键,键为someKey.键值比较特殊是一个结构体。不访问的话5秒删除该键。
然后访问一次后等待6秒。
继续访问提示不存在。
然后增加该CACHEITEM但是不会过期。
然后调用cache.SetAboutToDeleteItemCallback设置删除ITEM的回调函数aboutToDeleteItem
接着删除该CACHETIME 来触发aboutToDeleteItem,真正删除ITEM是使用delete函数。
最后调用Flush函数来删除CACHE TABLE。
阅读全文
0 0
- 10.go开源cache2go项目笔记——mycachedapp调用
- 8.go开源cache2go项目笔记——callbacks调用
- 9.go开源cache2go项目笔记——dataloader调用
- 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文件
- 10.go开源groupcache项目笔记——singleFlight
- 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代码
- 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
- 三.java多线程之线程调度
- redis数据丢失及解决
- 4.go开源groupcache项目笔记——关于strconv
- RESTful API设计指南