本文公众号文章链接:https://mp.weixin.qq.com/s/clal1S34zHGYIFLfY4xN_Q
本文csdn博客文章链接:https://blog.csdn.net/screscent/article/details/79792138
beego是一个开源的web框架。cache是其中的一个独立模块。这个模块的设计方式在go语言设计中是非常典型的工厂模式。
cache.go:抽象接口部分、注册部分、模块对外的初始化。
memory:memorycache
file:filecache
cache/memcache:封装的是memcache
cache/redis:封装的是redis
cache/ssdb:封装的是ssdb
源码目录为:
一、cache接口与入口部分
github.com/astaxie/beego/cache/cache.go
Cache接口定义了cache的操作方法:Get,GetMulti,Put,Delete,Incr,Decr,IsExist。
另外还定义了两个清理接口,ClearAll,定时自动清理StartAndGc
提供了注册接口
初始化入口:根据注册的cache类型查找,并初始化相关的cache,最后开启定时自动清理。
二、memorycache
github.com/astaxie/beego/cache/memory.go
在init函数中,注册初始化入口
基础的数据结构MemoryItem