ホームページ >バックエンド開発 >Golang >golang-cache はグローバルですか?

golang-cache はグローバルですか?

(*-*)浩
(*-*)浩オリジナル
2019-12-13 11:37:513825ブラウズ

golang-cache はグローバルですか?

#go-cache は、k-v 形式を保存するメモリベースの高速キャッシュ ツールです。単一マシン上で実行されるアプリケーションに適しており、あらゆるデータ型の値を保存でき、複数のゴルーチンで安全に使用できます。 (推奨学習: go)

go-cache は永続的なデータ ストアとして使用することを目的としていませんが、キャッシュ データ全体をファイル (または任意のファイル) に保存できます。 io.Reader/Writer )、そこから指定されたデータ ソースをすばやくロードし、状態をすばやく復元できます。

デモ

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")
        }

}

出力

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

まず、キーの有効期限が 30 秒の新しいキャッシュを作成し、クリアします。期限切れのキーが 10 秒ごとにキャッシュに保存されます。

キャッシュ内の期限切れのキーの定期的なクリアは、常駐の goroutine を通じて行われます。

次に、キー/値とその有効期限を設定します。有効期限にはデフォルトの有効期限である 30 秒が使用されます。

このキーを取得すると、この時点でこのキーがキャッシュに存在することがわかります。

60 秒間スリープして、設定したキーを期限切れにします。

このキーを再度取得してください。現時点では、キーは期限切れでクリアされており、キャッシュにはもうありません

以上がgolang-cache はグローバルですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。