Skip to content

EverythingMe/disposable-redis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Disposable-Redis

Create disposable instances of redis server on random ports

This can be used for testing redis dependent code without having to make assumptions on if and where redis server is running, or fear of corrupting data.

You just create a redis server instance, run your code against it as if it were a mock, and then remove it without a trace. The only assumption here is that you have redis-server available in your path.

For full documentation see http://godoc.org/github.com/EverythingMe/disposable-redis

Example:

import (
	"fmt"
	"time"
	disposable "github.com/EverythingMe/disposable-redis"
	redigo "github.com/garyburd/redigo/redis"
)

func ExampleServer() {

	// create a new server on a random port
	r, err := disposable.NewServerRandomPort()
	if err != nil {
		panic("Could not create random server")
	}

	// we must remember to kill it at the end, or we'll have zombie redises
	defer r.Stop()

	// wait for our server to be ready for serving, for at least 50 ms.
	// This gives redis time to initialize itself and listen
	if err = r.WaitReady(50 * time.Millisecond); err != nil {
		panic("Couldn't connect to instance")
	}

	//now we can just connect and talk to it
	conn, err := redigo.Dial("tcp", r.Addr())
	if err != nil {
		panic(err)
	}

	fmt.Println(redigo.String(conn.Do("SET", "foo", "bar")))
	//Output: OK <nil>

}

About

Create disposable redis servers on the fly for testing

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages