<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Go Revel - Cache(緩存)

      revel在服務(wù)器端提供了`cache`庫(kù)用以低延遲的存儲(chǔ)臨時(shí)數(shù)據(jù)。它緩存那些需要經(jīng)常訪問(wèn)數(shù)據(jù)庫(kù)但是變化不頻繁的數(shù)據(jù),也可以實(shí)現(xiàn)用戶會(huì)話的存儲(chǔ)。 ##有效期 一下三種方法為緩存元素設(shè)置過(guò)期時(shí)間: 1、 一個(gè)`time.Duration`值 2、`cache.DEFAULT`值, 應(yīng)用程序范圍的過(guò)期時(shí)間(默認(rèn)為1小時(shí)) 3、`cache.FOREVER`值, 永不過(guò)期 注意,調(diào)用者不能過(guò)度以來(lái)緩存中的數(shù)據(jù),因?yàn)檫@些數(shù)據(jù)不具備持久保持的能力,并且重啟緩存時(shí),這些數(shù)據(jù)都將被清空。 ##序列化 緩存器的`getters`與`setters`會(huì)自動(dòng)轉(zhuǎn)換數(shù)據(jù)為調(diào)用者期望的類型: 1、如果數(shù)據(jù)是`[]byte`類類型,則不會(huì)再進(jìn)行序列化 2、如果數(shù)據(jù)是任意整數(shù)類型,則以ASCII存儲(chǔ) 3、否則,都以`encoding/gob`編碼存儲(chǔ) ##實(shí)現(xiàn)方式 緩存可以配置為下列實(shí)現(xiàn)之一: 1、一個(gè)`memcached`主機(jī)列表 2、一個(gè)基于內(nèi)存的實(shí)現(xiàn) ##配置 在`app.conf`中以下列方式配置: 1、`cache.expires` - 能被`time.ParseDuration`處理的過(guò)期時(shí)間(默認(rèn)為1小時(shí)) 2、`cache.memcached` - 布爾值,是否啟用`memcached`(默認(rèn)不啟用) 3、`cache.hosts` - 以`,`逗號(hào)分割的主機(jī)列表,只有當(dāng)`memcached`啟用時(shí)才有效。 ##使用示例 下面示例包含了常用的操作,要注意的是,如果不需要取得返回結(jié)果來(lái)對(duì)請(qǐng)求做進(jìn)一步處理的話,那么最好在一個(gè)`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") } ##存儲(chǔ)會(huì)話 `Cache`緩存器具有全局的key空間 - 使用它存儲(chǔ)會(huì)話,調(diào)用著應(yīng)當(dāng)使用會(huì)話的UUID來(lái)作為key。 cache.Set(c.Session.Id(), products) // 在后續(xù)的請(qǐng)求中 err := cache.Get(c.Session.Id(), &products)

      posted on 2013-08-20 14:28  黑暗伯爵  閱讀(1680)  評(píng)論(0)    收藏  舉報(bào)

      導(dǎo)航

      主站蜘蛛池模板: 热久在线免费观看视频| 成人精品区| 91精品国产免费人成网站| 精品无码久久久久成人漫画 | 又粗又硬又黄a级毛片| 日本道播放一区二区三区| 国产不卡av一区二区| 白嫩少妇bbw撒尿视频| 久久人搡人人玩人妻精品| 日韩精品无码区免费专区| 极品美女扒开粉嫩小泬图片 | 亚洲成av人在线播放无码| 中文人妻av高清一区二区| 日日摸天天爽天天爽视频| 久久不见久久见中文字幕免费| 无码人妻aⅴ一区二区三区蜜桃 | 免费AV片在线观看网址| 亚洲精品一区二区三区蜜| 免费午夜无码片在线观看影院| 国产无遮挡又黄又爽不要vip软件 国产成人精品一区二区秒拍1o | 丰满人妻被黑人连续中出| caoporn成人免费公开| 综合久久婷婷综合久久| 唐人社视频呦一区二区| 亚洲欧洲精品一区二区| 日韩亚av无码一区二区三区| 国产精品免费观看色悠悠| 亚洲精品日韩中文字幕| 色丁香一区二区黑人巨大| 日韩大片高清播放器| 午夜一区二区三区视频| 国产99精品成人午夜在线| av一本久道久久波多野结衣| 免费可以在线看a∨网站| 国产色悠悠综合在线观看| 久久99久国产精品66| 国产伦一区二区三区久久| 欧洲免费一区二区三区视频| 最近中文字幕国产精品| 伊人激情一区二区三区av| 天天澡日日澡狠狠欧美老妇|