Go言語でキャッシュを実装する方法
Go言語では、キャッシュの実装に次の2種類のアプローチがあります。
- 同期マップ
- 同期マップ
- 同時マッピング
- ダウンロード
- 店舗
package main
import (
"fmt"
"sync"
)
func main() {
cache := sync.Map{}
// 存储缓存数据
cache.Store("key1", "value1")
// 获取缓存数据
value, ok := cache.Load("key1")
if ok {
fmt.Println(value)
}
}
- go-cache
- ビッグキャッシュ
package main
import (
"fmt"
"github.com/patrickmn/go-cache"
"time"
)
func main() {
// 创建缓存对象
c := cache.New(5*time.Minute, 10*time.Minute)
// 存储缓存数据
c.Set("key1", "value1", cache.DefaultExpiration)
// 获取缓存数据
value, found := c.Get("key1")
if found {
fmt.Println(value)
}
}
キャッシュを利用する際には、いずれの方法を使う場合も、キャッシュのコンカレンシ安全性の確保やキャッシュの失効ポリシーに留意し、データの一貫性と可用性を保証する必要があります。