😽

Goでmemcachedを使ってみる

2023/05/06に公開

Ubuntu環境のGoからmemcachedを使う手順

Ubuntuの設定

memcachedのインストール

sudo apt install memcached

設定ファイルは/etc/memcached.conf
状態はsystemctl status memcachedで確認
起動しているポート番号やIPアドレスが分かる

/usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid

コマンドラインでの操作方法
https://qiita.com/TatsuNet/items/5c89a2dbce57be28aef7

よく使うコマンド

  • 接続
telnet localhost 11211
  • データ取得
get [KEYを入力]
  • データの一覧をみる
stats cachedump 1 100
  • データ全件削除
flush_all

Goの設定

ライブラリのインストール

go get github.com/bradfitz/gomemcache/memcache

ライブラリのドキュメント
https://pkg.go.dev/github.com/bradfitz/gomemcache/memcache

コード例

キャッシュの有無で動作を変えたいような場合

import (
	"github.com/bradfitz/gomemcache/memcache"
)
	
var (
	mc *memcache.Client
)

func main() {
	mc = memcache.New("127.0.0.1:11211")
	defer mc.Close()
	
	var it *memcache.Item
	it, err = mc.Get("KEY")
	if err != nil {
		// キャッシュになかった
		mc.Set(&memcache.Item{Key: "KEY", Value: "VALUE"})
	} else {
		// キャッシュあった
		val = it.Value
	}
}

Discussion