Go 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.


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
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


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() {
c, err := redis.Dial(“tcp”, “:6379”)
if err != nil {
defer c.Close()

c.Do(“SET”, “message1”, “Hello World”)

world, err := redis.String(c.Do(“GET”, “message1”))
if err != nil {
fmt.Println(“key not found”)


Get redis.

go get github.com/garyburd/redigo/redis

Run it

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.

Expert advice and insight about all things email including best practices tips, examples, and advice for marketers, developers, and everyone in between.