10.go开源cache2go项目笔记——mycachedapp调用

本文介绍使用go语言中的cache2go库进行缓存管理的方法。通过实例演示了如何添加带有过期时间的缓存项、检查缓存项的存在状态、设置缓存删除回调以及清空整个缓存表。

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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值