#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 サイトの他の関連記事を参照してください。