はじめに
Redigoは、RedisのGo言語向けクライアントライブラリです。
Redigoの一通りの使い方を見ていきます。
環境
- OS: Windows 10
- Redis: win-3.2.100
- Go言語: 1.11
サーバの起動
マイクロソフトが提供しているRedisのWindows向けmsiパッケージをダウンロードして実行します。
デフォルト設定では、ローカルの6379番ポートでサービス開始します。別PCからアクセスできるようにするには設定ファイルでprotected modeを「no」に変更します。
redis-cliでの動作確認
インストールディレクトリ(WindowsではC:\Program Files\Redis)にあるredis-cli.exeを実行すると、ローカルホストの6379番ポートに接続します。
以降、キーボードからコマンドを入力できます。
127.0.0.1:6379> SET temperature 20
OK
127.0.0.1:6379> GET temperature
"20"
temperatureというキーに20という値を書き込み、直後に読み出しています(なおRedisでは数値と文字列は区別されません)。
本記事ではRedisの各コマンドについては説明しません。必要に応じて、コマンドリファレンスを適宜参照して下さい。
基本的なコード
上記の単純なSET/GETを、Redigoを使って行います。
始めにパッケージを取得します。
C:\Dev> go get github.com/gomodule/redigo/redis
単純なコードは次のようになります。
package main
import (
"fmt"
"github.com/gomodule/redigo/redis"
)
func main() {
// 接続
conn, err := redis.Dial("tcp", "localhost:6379")
if err != nil {
panic(err)
}
defer conn.Close()
// 値の書き込み
r, err := conn.Do("SET", "temperature", "25")
if err != nil {
panic(err)
}
fmt.Println(r) // OK
// 値の読み出し
s, err := redis.String(conn.Do("GET", "temperature"))
if err != nil {
panic(err)
}
fmt.Println(s) // 25
}
始めに、conn.Dial
でRedisサーバとの間で接続を確立します。
次にconn.Do
でSETを実行します。第1引数にコマンド名、第2引数以降にパラメータを記述します。
最後にconn.Do
でGETを行います。ここでは戻り値をさらにredis.String
へ渡しています。conn.Do
の結果はinterface{}型です。ここからstringを得るには[]byte型にキャストしさらにstringに変換する必要があります。煩雑なコードになるため、一発でstringを得る関数がイディオム的に用意されています。
実行結果は次の通りです。
C:\Dev> go run main.go
OK
25
おわりに
Redisのセットアップと、Redigoでの基本的なSET/GETの行い方を見ました。
以降ではより高度な使い方を見ていきます。