revel在服务器端提供了`cache`库用以低延迟的存储临时数据。它缓存那些需要经常访问数据库但是变化不频繁的数据,也可以实现用户会话的存储。 ##有效期 一下三种方法为缓存元素设置过期时间: 1、 一个`time.Duration`值 2、`cache.DEFAULT`值, 应用程序范围的过期时间(默认为1小时) 3、`cache.FOREVER`值, 永不过期 注意,调用者不能过度以来缓存中的数据,因为这些数据不具备持久保持的能力,并且重启缓存时,这些数据都将被清空。 ##序列化 缓存器的`getters`与`setters`会自动转换数据为调用者期望的类型: 1、如果数据是`[]byte`类类型,则不会再进行序列化 2、如果数据是任意整数类型,则以ASCII存储 3、否则,都以`encoding/gob`编码存储 ##实现方式 缓存可以配置为下列实现之一: 1、一个`memcached`主机列表 2、一个基于内存的实现 ##配置 在`app.conf`中以下列方式配置: 1、`cache.expires` - 能被`time.ParseDuration`处理的过期时间(默认为1小时) 2、`cache.memcached` - 布尔值,是否启用`memcached`(默认不启用) 3、`cache.hosts` - 以`,`逗号分割的主机列表,只有当`memcached`启用时才有效。 ##使用示例 下面示例包含了常用的操作,要注意的是,如果不需要取得返回结果来对请求做进一步处理的话,那么最好在一个`goroutine`中去处理缓存。 import ( "github.com/robfig/revel" "github.com/robfig/revel/cache" ) func (c App) ShowProduct(id string) revel.Result { var product Product if err := cache.Get("product_"+id, &product); err != nil { product = loadProduct(id) go cache.Set("product_"+id, product, 30*time.Minute) } return c.Render(product) } func (c App) AddProduct(name string, price int) revel.Result { product := NewProduct(name, price) product.Save() return c.Redirect("/products/%d", product.id) } func (c App) EditProduct(id, name string, price int) revel.Result { product := loadProduct(id) product.name = name product.price = price go cache.Set("product_"+id, product, 30*time.Minute) return c.Redirect("/products/%d", id) } func (c App) DeleteProduct(id string) revel.Result { product := loadProduct(id) product.Delete() go cache.Delete("product_"+id) return c.Redirect("/products") } ##存储会话 `Cache`缓存器具有全局的key空间 - 使用它存储会话,调用着应当使用会话的UUID来作为key。 cache.Set(c.Session.Id(), products) // 在后续的请求中 err := cache.Get(c.Session.Id(), &products)

Go Revel - Cache(缓存)相关推荐

  1. ASP.NET 中HttpRuntime.Cache缓存数据

    最近在开始一个微信开发,发现微信的Access_Token获取每天次数是有限的,然后想到缓存,正好看到微信教程里面推荐HttpRuntime.Cache缓存就顺便看了下. 写了(Copy)了一个辅助类 ...

  2. .net System.Web.Caching.Cache缓存类使用详解(转载)

    转自:http://www.cnblogs.com/virusswb/articles/1681561.html net System.Web.Caching.Cache缓存类使用详解 System. ...

  3. 注释驱动的 Spring cache 缓存介绍--转载

    概述 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使 ...

  4. 注解驱动的 Spring cache 缓存介绍

    概述 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术 ...

  5. WP博客ajax,WordPress文章点击统计ajax版,兼容wp super cache缓存代码及插件

    自从陌小雨博客历经文章阅读数数次清零后,陌小雨对这个文章浏览数也不是很在意了,这也就是所谓的破罐子破摔吧,但自从陌小雨前段时间再启用 wp super cache 纯缓存代码后,陌小雨觉得还是有必要把 ...

  6. SpringBoot集成Cache缓存(Ehcache缓存框架,注解方式)

    1.说明 Spring定义了CacheManager和Cache接口, 用来统一不同的缓存技术, 例如JCache,EhCache,Hazelcast,Guava,Redis等. 本文通过Spring ...

  7. spring boot guava cache 缓存学习

    http://blog.csdn.net/hy245120020/article/details/78065676 ****************************************** ...

  8. mysql havequerycache_如何开启MySQL的中的Query Cache缓存

    MySQL Query Cache是mysql中的一个功能,主要是用来缓存和查询相关数据,本文文详细介绍如何开启MySQL中的Query Cache,以及Query Cache中的一些参数. MySQ ...

  9. 注释驱动的 Spring cache 缓存介绍

    概述 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使 ...

  10. Spring Cache缓存技术,Cacheable、CachePut、CacheEvict、Caching、CacheConfig注解的使用

    前置知识: 在Spring Cache缓存中有两大组件CacheManager和Cache.在整个缓存中可以有多个CacheManager,他们负责管理他们里边的Cache.一个CacheManage ...

最新文章

  1. JDK5中的控制台输入
  2. Python之路-python(Queue队列、进程、Gevent协程、Select\Poll\Epoll异步IO与事件驱动)
  3. matlab mbuild setup,关于mbuild的一个问题
  4. PHP 实现归并排序算法
  5. iOS 如果刷新TableViewCell上得数据是空的 添加尾部暂无数据提示
  6. 《C语言及程序设计》实践参考——转着圈加密
  7. 企业销售统计管理页面ui模板
  8. GraphPad Prism 统计教程 :高斯分布
  9. ImageJ 中文教程(细胞计数)
  10. 微信小程序短信倒计时60s功能
  11. win2008服务器系统玩红警,WIN10 64位系统完美运行红色警戒2教程
  12. linux redis-trib.rb,redis集群配置 执行 redis-trib.rb 报错解决方法
  13. 布局改变时的过场动画
  14. 【Get深一度】小波分析概念3——正则性是什么意思,通俗解释
  15. 名帖168 李邕 行书《出师表》
  16. 设计必备的配色工具03
  17. 水晶报表的制作(图表)
  18. 802.11 - (1)
  19. toeic 备考常用论坛
  20. 阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅amp;消费

热门文章

  1. Creative Groove Randomizer插件:Audiomodern Playbeat节拍生成器
  2. Mac版微信支持朋友圈了!微信内测版体验感
  3. 如何不装软件查看 Mac 温度?
  4. Ubuntu 18.04 通过 ufw route 配置网关服务器
  5. Emgu-WPF学习使用-Rectangle识别
  6. MariaDB 10.3 解决掉了UPDATE不支持同一张表的子查询更新
  7. Kotlin入门到放弃
  8. 安卓平台中的动态加载技术分析
  9. 关于5G你所需要知道的一切
  10. js中java式的类成员