/cachehero

It's a package that wrap popular cache clients like Redis and Memcache.

Primary LanguageGoMIT LicenseMIT

Cache Hero

It's a package that will help us to manage the basic things of cache clients like Redis and Memcached. The package contains use cases to connect to the clients and to do the crud operations for the available cache clients.

Available cache clients

  1. Redis

Installation

  go get github.com/hernanhrm/cachehero

Quickstart

package main

import (
	"fmt"
	"log"

	"github.com/hernanhrm/cachehero"
)

func main() {
	cache, err := cachehero.New(cachehero.NewConfig("redis", "localhost", 6379, "1", "", ""))
	if err != nil {
		log.Fatal(err)
	}

	if err := cache.Set("my-key", "Hello World!", 0); err != nil {
		log.Fatal(err)
	}

	value, err := cache.Get("my-key")
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println(value) // will print: Hello World!

	if err := cache.Del("my-key"); err != nil {
		log.Fatal(err)
	}

	value, err = cache.Get("my-key")
	if err != nil {
		log.Fatal(err) // will print an error because the key does not exist
	}

	if err := cache.Set("my-key-one", "one-value", 0); err != nil {
		log.Fatal(err)
	}

	if err := cache.Set("my-key-two", "second-value", 0); err != nil {
		log.Fatal(err)
	}

	values, err := cache.MGet("my-key-one", "my-key-two")
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println(values)//will print map[my-key-one:one-value my-key-two:second-value]
}