🔧

缓存功能

示例

package main import ( "github.com/sohaha/zlsgo/zcache" "github.com/sohaha/zlsgo/zlog" "time" ) func main() { // cache := zcache.Get(key) // 初始化一个名为 demo 的缓存对象,也可以直接 zcache.Get()、zcache.Set() ... // 如果缓存数据很多,建立不同类型使用不同的缓存对象,能有效的提高性能 cache := zcache.New("demo") // 设置缓存key为name,值为666,过期时间为10秒 // 等同 c.SetT(key, data, 10*time.Second) cache.Set("name", 666, 10) // 缓存期内如果有访问就会自行续期 // cache.Set("name", 666, 10, true) // 获取缓存数据 name, err := cache.Get("name") if err != nil { zlog.Fatal("缓存不存在") } zlog.Debug("缓存的值:", name.(int)) // 考虑到有时候防止缓存穿透 v, err := zcache.MustGet("notExist", func(set func(data interface{}, lifeSpan time.Duration, interval ...bool)) (err error) { set("设置数据", 200*time.Second) return nil }) zlog.Debug(v,err) // 判断缓存 key 是否存在 b := cache.Exists("name") zlog.Debug("缓存是否存在:", b) // 如果缓存不存在则添加反之不生效 res := cache.Add("name", 999, 5*time.Second) if res { zlog.Debug("缓存不存在,设置缓存") } else { zlog.Debug("缓存存在,忽略设置") } // 删除缓存 _, _ = cache.Delete("name") // 清除缓存 cache.Clear() }