The 2 most mature and commonly used Redis drivers in Go are:
A full list of Redis drivers for Go is available here.
In this recipe, we will implement a global, atomic counter using Redis using the Radix driver. Why not just implement a counter locally in the Go program instead. Sure, we can do that if it's just 1 client running a single thread. But in a concurrent context where we have multiple goroutines or in a distributed system, we need to have a system to support an atomic increment operation across the network. Redis provides support for a counter via the INCR
command.
-
Start redis.
$ docker-compose up
-
In the another shell, you can connect to Redis via the CLI tool:
$ docker-compose exec redis redis-cli
-
Run Go program.
$ go run ./main.go
-
Shut down and remove the container when you are done.
$ docker-compose down
-
Alternatively, you can run everything with just 2 commands.
$ make run $ make teardown # Run this to remove the container
- Tutorial: Design and implementation of a simple Twitter clone using PHP and the Redis key-value store
- GoDoc: mediocreogopher/radix