関連記事
GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ
概要
以下、自分用のメモです。忘れないうちにメモメモ。。。
otterというキャッシュライブラリがあるのを知りました。
まずアイコンが可愛らしい。アイコンが素敵なライブラリは大抵良いという個人的な感覚がありますw
シンプルに使えて、ハイパフォーマンスなのが売りみたいですね。
ちょこっとだけ試してみました。
試してみた
インストール
$ go get -u github.com/maypok86/otter@latest
module app go 1.22.0 require github.com/maypok86/otter v1.0.0 require ( github.com/dolthub/maphash v0.1.0 // indirect github.com/dolthub/swiss v0.2.1 // indirect github.com/gammazero/deque v0.2.1 // indirect )
package main import ( "log" "time" "github.com/maypok86/otter" ) const ( KEY = "KEY1" CAPACITY = 100 ) var ( cache otter.Cache[string, string] ) func init() { log.SetFlags(log.Ltime) } func main() { var err error // // Build // cache, err = otter. MustBuilder[string, string](CAPACITY). WithTTL(1 * time.Second). Build() if err != nil { panic(err) } defer cache.Close() // // Set // cache.Set(KEY, "hello world") // // Get // var ( v string ok bool ) v, ok = cache.Get(KEY) if !ok { panic("not found") } log.Println(v) time.Sleep(3 * time.Second) _, ok = cache.Get(KEY) if !ok { log.Println("expired") } }
$ task run task: Task "build" is up to date task: [run] ./app 08:31:56 hello world 08:31:59 expired
参考情報
🤓 My top 3 Go packages that I wish I'd known about earlier - DEV Community
Goのおすすめ書籍
上の書籍の日本語版が下です。
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。