Como armazenar dados do aplicativo em cache usando o Redis Labs Redis

Use o Redis Labs Cloud para fazer o armazenamento em cache dos dados do aplicativo. Ele é um serviço totalmente gerenciado que oferece uma variedade de opções para executar o Redis.

Preço

O Redis Labs oferece um nível gratuito com 30 MB de armazenamento.

Como configurar

Para usar o Redis da Redis Labs:

  1. Inscreva-se em uma conta do Redis Labs Cloud.
  2. Crie um banco de dados Redis usando o Redis Cloud. Lembre-se de especificar o GCE/us-central1 como a nuvem para garantir a menor latência. Especifique uma senha forte, já que a instância do Redis será acessível publicamente.
  3. Observe o Endpoint do banco de dados.

Como instalar uma biblioteca de cliente do Redis

Recomendamos o uso do Redigo.

Crie um app do Go para o ambiente flexível da maneira usual.

Instale as vinculações.

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

Como conectar-se ao Redis da Redis Labs

Configure variáveis de ambiente no app.yaml com o ponto de extremidade e a senha do banco de dados do Redis da Redis Labs:
env_variables:
  REDIS_ADDR: "<REDIS_HOST>:<REDIS_PORT>"
  REDIS_PASSSWORD: ""
# [END gae_flex_golang_redis_yaml]
Use as variáveis de ambiente no código do aplicativo para configurar um cliente 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]

Como testar o Redis localmente

É possível testar o aplicativo localmente e se conectar com o banco de dados do Redis Labs Redis. Para evitar a interação com os dados do produto, execute uma instância local do Redis.

Siga as instruções na documentação do Redis para instalar e executá-lo localmente. Observe que atualmente não é possível executar o Redis localmente no Windows.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente flexível do App Engine para Go