Redis Labs Redis를 사용한 애플리케이션 데이터 캐싱

Redis Labs Cloud를 사용하여 애플리케이션 데이터를 캐시할 수 있습니다. Redis Cloud는 다양한 Redis 실행 옵션을 제공하는 완전 관리형 서비스입니다.

가격

Redis Labs에는 30MB의 저장 용량을 제공하는 무료 등급이 있습니다.

설정

Redis Labs의 Redis를 사용하는 방법은 다음과 같습니다.

  1. Redis Labs Cloud 계정에 가입합니다.
  2. Redis Cloud를 사용하여 Redis 데이터베이스를 만듭니다. 지연 시간을 최소화하기 위해 GCE/us-central1을 Cloud로 지정합니다. Redis 인스턴스는 공개적으로 액세스 가능하게 되므로 안전한 비밀번호를 지정합니다.
  3. 데이터베이스의 Endpoint를 기록합니다.

Redis 클라이언트 라이브러리 설치

Redigo를 사용하는 것이 좋습니다.

일반적인 방법으로 가변형 환경용 Go 앱을 만듭니다.

결합을 설치합니다.

go get -u github.com/gomodule/redigo/redis

Redis Labs로 Redis에 연결

app.yaml에서 Redis Labs Redis 데이터베이스의 엔드포인트와 비밀번호로 환경 변수를 구성합니다.
env_variables:
  REDIS_ADDR: "<REDIS_HOST>:<REDIS_PORT>"
  REDIS_PASSSWORD: ""
# [END gae_flex_golang_redis_yaml]
애플리케이션 코드에서 환경 변수를 사용하여 Redis 클라이언트를 구성합니다.

package main

import (
	"fmt"
	"net/http"
	"os"

	"github.com/gomodule/redigo/redis"

	"google.golang.org/appengine"
)

var redisPool *redis.Pool

func main() {
	redisAddr := os.Getenv("REDIS_ADDR")
	redisPassword := os.Getenv("REDIS_PASSWORD")

	redisPool = &redis.Pool{
		Dial: func() (redis.Conn, error) {
			conn, err := redis.Dial("tcp", redisAddr)
			if redisPassword == "" {
				return conn, err
			}
			if err != nil {
				return nil, err
			}
			if _, err := conn.Do("AUTH", redisPassword); err != nil {
				conn.Close()
				return nil, err
			}
			return conn, nil
		},
		// TODO: Tune other settings, like IdleTimeout, MaxActive, MaxIdle, TestOnBorrow.
	}

	http.HandleFunc("/", handle)
	appengine.Main()
}

func handle(w http.ResponseWriter, r *http.Request) {
	if r.URL.Path != "/" {
		http.NotFound(w, r)
		return
	}

	redisConn := redisPool.Get()
	defer redisConn.Close()

	count, err := redisConn.Do("INCR", "count")
	if err != nil {
		msg := fmt.Sprintf("Could not increment count: %v", err)
		http.Error(w, msg, http.StatusInternalServerError)
		return
	}

	fmt.Fprintf(w, "Count: %d", count)
}

// [END gae_flex_golang_redis]

로컬에서 Redis 테스트

앱을 로컬에서 테스트하는 경우에도 Redis Labs Redis 데이터베이스에 연결할 수 있습니다. 하지만 프로덕션 데이터와의 상호작용을 피하기 위해 Redis의 로컬 인스턴스를 실행하는 것이 좋을 수 있습니다.

Redis 문서의 지침에 따라 Redis를 로컬에 설치하고 실행하세요. 현재 Windows에서는 Redis를 로컬로 실행할 수 없습니다.