Aula 04 – Golang para Web – Redis

More videos
   

Aula 04 – Golang para Web – Redis

Voltar para página principal do blog

Todas as aulas desse curso

Aula 03                       Aula 05

Go para Web - Redis

Go para Web – Redis

Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook

Link do código fluente no Pinterest

Meus links de afiliados:

Hostinger

Digital Ocean

One.com

Código da aula: Github

Melhore seu NETWORKING

Participe de comunidades de desenvolvedores:

Fiquem a vontade para me adicionar ao linkedin.

E também para me seguir no GITHUB.

Ah, se puder, clica na estrela nos meus repositórios pra dá uma força ao meu perfil no GITHUB

Redis

O Redis é um armazenamento de estrutura de dados em memória, de código-fonte aberto (licenciado pela BSD) e usado como banco de dados em cache e intermediário de mensagens.

Ele suporta várias estruturas de dados, como Strings, Hashes, Lists, Sets, etc.
O Redis foi feito usando a linguagem de programação ANSI C e usa a estrutura NoSQL para armazenar dados, o que atualmente o torna bem popular.
Gigantes da tecnologia como GitHub, Weibo, Pinterest, Snapchat, Craigslist, Digg, StackOverflow, Flickr, etc. Usam Redis.

Para prosseguir é necessário ter o Redis instalado na sua máquina.

Nesse meu post eu explico como instalar:

https://medium.com/@toticavalcanti/redis-no-windows-10

Uma vez o Redis instalado, inicie o serviço Redis digitando em outro terminal:


redis-server

Agora o serviço do Redis deve tá rodando!

Com o Redis instalado e o seu serviço rodando, podemos agora instalar o pacote que golang usa para se comunicar com o Redis.

No terminal, digite o comando abaixo e tecle enter:


go get github.com/go-redis/redis

Pronto, o pacote deve ter sido instalado!

Voltando ao código.

O que tá em laranja é o que tá sendo modificado:

my_projects/web_app/main.go


package main

import(
	"log"
	"net/http"
	"github.com/gorilla/mux"
	"github.com/go-redis/redis"
	"html/template"
 )	
//globals variables
var client *redis.Client
var templates *template.Template

func main(){
	client = redis.NewClient(&redis.Options{
		Addr: "localhost:6379",
	})
	templates = template.Must(template.ParseGlob("templates/*.html"))
	r := mux.NewRouter()
	r.HandleFunc("/contact", contactHandler).Methods("GET")
	r.HandleFunc("/about", aboutHandler).Methods("GET")
	r.HandleFunc("/", indexHandler).Methods("GET")
	http.Handle("/", r)
	log.Fatal(http.ListenAndServe(":8000", nil))
}

 //request index page handle
 func indexHandler(w http.ResponseWriter, r *http.Request){
    comments, err := client.LRange("comments", 0, 10).Result()
    templates.ExecuteTemplate(w, "index.html", "This is the index page!")
}

//request contact page handle
func contactHandler(w http.ResponseWriter, r *http.Request){
   templates.ExecuteTemplate(w, "contact.html", "This is the contact page!")
}

//request about page handle
func aboutHandler(w http.ResponseWriter, r *http.Request){
   templates.ExecuteTemplate(w, "about.html", "This is the about page!")
}

Fizemos o importe do pacote de comunicação com o Redis, criamos outra variável global chamada client, que vai receber a instância do cliente Redis, onde nas options tá sendo passado o endereço onde o serviço Redis está sendo servido.

No nosso caso, tá rodando na nossa máquina local, na porta 6379, que é a porta padrão do Redis.

Na linha:
comments, err := client.LRange(“comments”, 0, 10).Result() estamos pegando os 11 últimos comentários.

Veja que esse método retorna dois valores, um contém um array de strings com os comentários, o outro é um objeto de erro ou não, dependendo se a nossa solicitação falhou ou não.

Aqui não estamos tratando o erro ainda, se ocorrer algum erro, simplesmente redirecionaremos para o indexHandler.

Modifique o my_projects/web_app/templates/index.html para adicionar o bind no html.

my_projects/web_app/templates/index.html


<html>
	<head>
		<title>Comments</title>
	</head>
	<body>
		<h1>Comentários</h1>
		{{ range . }}
		    <div>{{ . }}</div>
		{{ end }}
	</body>
</html>

Agora vamos rodar nossa aplicação:


go run main.go

Acesse:

localhost:8000/

Veja que não temos nenhum comentário, claro, não criamos nenhum.

Dê um ctrl + c para derrubar o servidor.

Vamos entrar no prompt do Redis, digite no terminal:


redis-cli

O promp vai mudar para:


127.0.0.1:6379>

Crie alguns comentários:


127.0.0.1:6379>lpush comments "oi, tudo bem?"
127.0.0.1:6379>lpush comments "testando 123"
127.0.0.1:6379>lpush comments "testando 456"
127.0.0.1:6379>lpush comments "outro teste"

Agora vamos rodar nossa aplicação:


go run main.go

Acesse:

localhost:8000/

Se tudo correu bem, os comentários criados devem aparecer na index.html!

Por agora é só, nos vemos próxima. 😉

Código da aula: Github

Voltar para página principal do blog

Todas as aulas desse curso

Aula 03                       Aula 05

Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook

Link do código fluente no Pinterest

Novamente deixo meus link de afiliados:

Hostinger

Digital Ocean

One.com

Obrigado, até a próxima e bons estudos. 😉

 

(Visited 68 times, 1 visits today)
About The Author
-

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>