亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    golang-cache是全局嗎

    golang-cache是全局嗎

    go-cache 是一個(gè)基于內(nèi)存的、高速的,存儲k-v格式的緩存工具。它適用于運(yùn)行在單臺機(jī)器上的應(yīng)用程序,可以存儲任何數(shù)據(jù)類型的值,并可以被多個(gè)goroutine安全地使用。 (推薦學(xué)習(xí):go)

    雖然go-cache 不打算用作持久數(shù)據(jù)存儲,但是可以將整個(gè)緩存數(shù)據(jù)保存到文件(或任何io.Reader/Writer)中,并且能快速從中指定數(shù)據(jù)源加載,快速恢復(fù)狀態(tài)。

    Demo

    package main  import (         "log"         "time"          "github.com/patrickmn/go-cache" )   func main(){          c := cache.New(30*time.Second, 10*time.Second)           c.Set("Title", "Spring Festival", cache.DefaultExpiration)           value, found := c.Get("Title")         if found {                 log.Println("found:", value)         } else {                 log.Println("not found")         }           time.Sleep(60*time.Second)         log.Println("sleep 60s...")         value, found = c.Get("Title")         if found {                 log.Println("found:", value)         } else {                 log.Println("not found")         }  }

    output

    2019/02/05 17:49:32 found: Spring Festival 2019/02/05 17:50:32 sleep 60s… 2019/02/05 17:50:32 not found

    首先,創(chuàng)建一個(gè)新的cache,其中的key過期時(shí)間是30s,并且每10s清除緩存中的過期key。

    定期清除緩存中的過期key,是通過一個(gè)常駐goroutine實(shí)現(xiàn)的。

    接著,設(shè)置一個(gè)key/value,及其過期時(shí)間。過期時(shí)間使用默認(rèn)過期時(shí)間,即30s。

    獲取這個(gè)key,可以看到,此時(shí)這個(gè)key在cache中是存在的。

    睡眠60s,使剛才設(shè)置的key過期。

    再次獲取這個(gè)key,此時(shí)key已經(jīng)過期,被清除了,不在cache

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號