Get Going with Go and Redis


Posted on

gopherGo is a promising language. It’s a strong replacement for Java, it’s similarly productive to writing Python, and it is an excellent tool for writing servers.

I’m starting to dive into it in my spare time, and in this blog post I will show you the basics of getting started with Go and Redis together. This tutorial assumes you’re running a flavor of Mac OS X and are comfortable with Terminal.

Setup

Install Redis

Run the following commands on most *nix command lines to download, unpack and install Redis:

wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
sudo make install

Install Go

Install Go. As of writing, this was the latest version for Mac.

(You can find the list of all available downloads by clicking from the go download page.)

Install Mercurial

You must have Mercurial installed for the

go get

command to work. So let’s install Mercurial, which is super easy if you manage packages with Homebrew.

brew update
brew doctor
brew install mercurial

Setup GOPATH

Create your go workspace. This is just the way go works. Do the following:

mkdir gocode

Open up .bashrc (or .zshrc if using zsh):

vim .bashrc

On the last line set the GOPATH:

export GOPATH="$HOME/gocode"

Create your project workspace

Now, we can create our project workspace.

cd gocode
mkdir -p src/github.com/yourusername

Let’s Code

Cool, now let’s create the redis go project.

Create the hello-go-redis project

cd src/github/yourusername
mkdir hello-go-redis
cd hello-go-redis
vim hello-go-redis.go

Paste the following into hello-go-redis.go.

package main

import "fmt"
import "github.com/garyburd/redigo/redis"

func main() {
//INIT OMIT
c, err := redis.Dial("tcp", ":6379")
if err != nil {
panic(err)
}
defer c.Close()

//set
c.Do("SET", "message1", "Hello World")

//get
world, err := redis.String(c.Do("GET", "message1"))
if err != nil {
fmt.Println("key not found")
}

fmt.Println(world)
//ENDINIT OMIT
}

Get redis.

go get github.com/garyburd/redigo/redis

Run it

/usr/local/bin/redis-server
go run hello-go-redis.go

You will get the message back “Hello World.” Nice job, you just wrote your first Go script. Check out further tutorials on the Go site.


Hacker in LA. I believe the future is bright. It's up to us to build it - as programmers we get a big say. Follow me on twitter @motdotla.

Scott Motte on Twitter
Have thoughts on this post?
Chat with us about it on Twitter and Google+