本文公众号文章链接:https://mp.weixin.qq.com/s/clal1S34zHGYIFLfY4xN_Q
本文csdn博客文章链接:https://blog.youkuaiyun.com/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

MemoryCache结构体,对基础数据结构MemoryItem的封装,通过一个map进行key value对的保存

本文详细分析了beego框架中的缓存模块,包括cache接口与入口、memorycache、file cache、redis cache、memcache cache和ssdb cache。各部分分别介绍了其实现原理,如内存缓存的自动清理机制、文件缓存的数据存储和编码、redis及memcache的封装操作。beego cache模块设计简洁,适合学习Go语言设计模式。
最低0.47元/天 解锁文章
2020

被折叠的 条评论
为什么被折叠?



