Help us understand the problem. What is going on with this article?

Redigoを使う(1) 基本的な使い方

More than 1 year has passed since last update.

はじめに

Redigoは、RedisのGo言語向けクライアントライブラリです。
Redigoの一通りの使い方を見ていきます。

環境

サーバの起動

マイクロソフトが提供している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

単純なコードは次のようになります。

main.go
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の行い方を見ました。
以降ではより高度な使い方を見ていきます。

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away