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