當有一些 request 查詢某些資料頻率很高,都去查詢資料庫會造成 response time 很長,這時會將資料存在 cache。AWS ElastiCache提供 memcached 和 redis 兩種。由於 free tier 的免費 instance規格是 cache.t2micro,所以只有 memcached 可以選擇。 AWS ElastiCache 不提供 VPC 以外的 access 權限,所以在建立時要將 VPC 的設定設為和 EC2 相同  VPC 使 EC2 可以 access 到 cache。下面和大家分享設定畫面以及用 golang 去連接的 sample code。

  • 進入 AWS ElastiCache console -> 選擇 memcached

memcached

  • 設定名稱和選擇規格

memcached2

  • 選擇 VPC 設定

memcached3

  • 最後會顯示之前的設定資訊,選擇 “Launch cache cluster"  即可建立
  • 測試用 command:
    • telnet [url] 11211
    • 進入後輸入 state 會顯示一些 memcached 的資訊
  • golang sample code
    • go get “github.com/bradfitz/gomemcache/memcache"
//connect to memcached
mc := memcache.New("cache.qimhmf.cfg.apne1.cache.amazonaws.com:11211")

//set key 
mc.Set(&memcache.Item{Key: "map", Value: []byte("my value")})

//get key
it, err := mc.Get("map")
if err != nil {
    log.Println(log_tag, "err", err)
}
fmt.Printf("## %s => %s\n", it.Key, it.Value)