1. 缓存接口 gcache.Cache:
gcache.Cache 接口定义了缓存的基本操作,包括设置值、获取值、删除值、清空缓存等。用户可以根据需要选择不同的实现,例如 gcache.New 返回的默认缓存对象。
type Cache interface {
Set(key interface{}, value interface{}, ttl ...time.Duration) error
GetVar(key interface{}) (*Var, error)
Get(key interface{}) (interface{}, error)
GetExpire(key interface{}) (time.Duration, error)
Remove(key interface{}) error
Clear()
Keys() []interface{}
Size() int
}
2. 缓存接口 gcache.Adapter:
gcache.Adapter 接口定义了缓存适配器的接口,用户可以基于该接口自定义缓存适配器,实现自己的缓存存储方式。gcache 提供了默认的 gcache.AdapterMemory 适配器,可以用于内存缓存。
type Adapter interface {
Set(interface{}, interface{}, ...time.Duration) error
GetVar(interface{}) (*Var, error)
Get(interface{}) (interface{}, error)
GetExpire(interface{}) (time.Duration, error)
Remove(interface{}) error
Clear()
Keys() []interface{}
Size() int
}
3. 缓存变量接口 gcache.Var:
gcache.Var 接口定义了缓存变量的接口,用户可以通过该接口获取缓存变量的值,并实现一些操作。
type Var interface {
Val() interface{}
TTL() time.Duration
Expire() time.Time
}
4. 缓存配置 gcache.Config:
gcache.Config 结构定义了缓存的配置选项,用户可以在创建缓存对象时进行配置。
type Config struct {
Interval time.Duration // 定期清理过期缓存的时间间隔,默认 60s
MaxSize int // 缓存的最大容量,0 表示不限制容量,默认 0
DefaultExpiration time.Duration // 缓存的默认过期时间,0 表示永不过期,默认 0
CleanupVisitorTime time.Duration // 定期清理过期缓存的时间点,默认 3:00 AM
}
5. 自定义缓存适配器:
用户可以通过实现 gcache.Adapter 接口自定义缓存适配器,以满足特定的需求,比如使用数据库作为缓存存储。
type MyCustomAdapter struct {
// 实现 gcache.Adapter 接口的各个方法
}
这些接口和配置选项为用户提供了很大的灵活性,使得可以根据实际需求选择和定制缓存的实现方式。在使用 gcache 时,可以根据项目的具体需求进行配置和扩展。
转载请注明出处:http://www.zyzy.cn/article/detail/7604/GoFrame