ACM清洁平台瞄准chiplet行业
06-06
关于Goravel Goravel 是一个功能齐全、扩展性好的Web 应用框架。作为一个入门脚手架,帮助Golang开发者快速构建自己的应用程序。
项目地址:star and issues :) 缓存模块介绍 Goravel 提供了一个可扩展的缓存模块。该模块可以使用facades.Cache进行操作。
配置 所有自定义配置都在 config/cache.php 中完成。允许配置不同的缓存驱动程序。
默认使用Redis。还可以自定义驱动,进入配置文件查看。
可用的缓存驱动名称 描述 redisRedis驱动 自定义 自定义驱动缓存 使用 从缓存中获取数据 代码语言: txt copy value :=facades.Cache.Get("goravel", func() interface{} {return "default"}) You可以传递一个 func 作为默认值。如果指定的数据在缓存中不存在,则返回func的结果。
传递闭包方法允许您从数据库或其他外部服务获取默认值。注意闭包结构 func() interface{}。
代码语言:txt 复制值 :=facades.Cache.Get("goravel", func() interface{} {return "default"}) 检查缓存项是否存在 代码语言:txt 复制值 :=facades.Cache.Has ("goravel") 获取和存储 有时你可能想从缓存中获取一个数据,而当请求的缓存项不存在时,程序可以为你存储一个默认值。代码语言:txt复制值,err :=facades.Cache.Remember("goravel", 5 * time.Second, func() interface{} {return "goravel"}) 如果缓存中不存在你想要的数据,传递给 Remember 方法的闭包将被执行,其结果返回并放置在缓存中。
您可以使用 RememberForever 方法从缓存中获取数据或永久存储数据: 代码语言:txt copy value, err :=facades.Cache.RememberForever("goravel", func() interface{} {return "default"})获取和删除 代码语言:txt copy value :=facades.Cache.Pull("goravel", "default") 将数据存储在缓存中 代码语言:txt copy err :=facades.Cache.Put("goravel", "value" , 5 * time.Second) 如果缓存过期时间设置为0,缓存将永久有效: 代码语言:txt copy err:=facades.Cache.Put("goravel", "value", 0) 只存储不可用的数据 Add 方法将只存储缓存中尚未存在的数据。如果存储成功则返回 true,否则返回 false: 代码语言:txt copy res :=facades.Cache.Add("goravel", "value", 5 * time.Second) 数据永久存储 Forever 方法可用于持久存储在缓存中的数据。
因为这些数据不会过期,所以必须通过 Forget 方法手动从缓存中删除它们: 代码语言:txt 复制 res :=facades.Cache.Forever("goravel", "value") 从缓存中删除数据 代码语言: txt Copy res :=facades.Cache.Forget("goravel") 您可以使用 Flush 方法清除所有缓存: 代码语言:txt Copy res :=facades.Cache.Flush() 如果需要,可以添加自定义缓存驱动配置要定义一个完全自定义的驱动程序,可以在 config/cache.php 配置文件中指定自定义驱动程序类型。然后包含一个via选项来实现framework\contracts\cache\Store结构: 代码语言:txt copy //config/cache.php "stores": map[string]interface{}{"redis": map[string]interface {}{"driver": "redis","connection": "default",},"custom": map[string]接口{}{"driver": "custom","via": Logger{},/ /自定义驱动},},编写驱动实现framework\contracts\cache\Store接口,配置到config/cache.go。
文件可以存储在app/extensions文件夹中(可以修改)。代码语言:txt复制//framework\contracts\cache\Storepackage cacheimport "time"type Store interface {//Get 通过key从缓存中检索一个项目。
Get(key string, defaults interface{}) interface{}//Has确定缓存中是否存在某个项目。Has(key string) bool//Put 在给定的秒数内将项目存储在缓存中。
Put(key string, value interface{},秒 time.Duration) error//Pull从缓存中检索一个项目并删除它。Pull(key string, defaults interface{}) interface{}//Add 如果键不存在,则在缓存中存储一??个项目。
Add(key string, value interface{},秒time.Duration) bool//Remember 从缓存中获取一项,或者执行给定的 Closure 并存储结果。Remember(key string, ttl time.Duration, callback func() interface{}) (interface{}, error) //RememberForever 从缓存中获取一个项目,或者执行给定的 Closure 并永远存储结果。
RememberForever(key string, callback func() interface{}) (interface{}, error)//Forever 无限期地在缓存中存储一??个项目。Forever(key string, value interface{}) bool//Forget 从缓存中删除一个项目。
Forget(key string) bool//Flush 删除所有项目来自缓存。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-06
06-08
06-17
06-06
06-06
最新文章
【玩转GPU】ControlNet初学者生存指南
【实战】获取小程序中用户的城市信息(附源码)
包雪雪简单介绍Vue.js:开学
Go进阶:使用Gin框架简单实现服务端渲染
线程池介绍及实际案例分享
JMeter 注释 18 - JMeter 常用配置组件介绍
基于Sentry的大数据权限解决方案
【云+社区年度征文集】GPE监控介绍及使用