A CacheAdapter
implementation that allows to connect and use a Redis instance.
Beware that at the moment it has the github.com/gomodule/redigo dependency
Please refer to the following example for the correct usage:
package main
import (
"log"
"time"
"github.com/gomodule/redigo/redis"
cacheadapters "github.com/tryvium-travels/golang-cache-adapters"
rediscacheadapters "github.com/tryvium-travels/golang-cache-adapters/redis"
)
func main() {
redisURI := "rediss://my-redis-instance-uri:port"
myRedisPool := &redis.Pool{
Dial: func() (redis.Conn, error) {
// obtain a redis connection, there
// are plenty of ways to do that.
return redis.DialURL(redisURI)
},
}
exampleTTL := time.Hour
adapter, err := rediscacheadapters.New(myRedisPool, exampleTTL)
if err != nil {
// remember to check for errors
log.Fatalf("Adapter initialization error: %s", err)
}
type exampleStruct struct {
Value string
}
exampleKey := "a:redis:key"
var exampleValue exampleStruct
err = adapter.Get(exampleKey, &exampleValue)
if err != nil {
// remember to check for errors
log.Fatalf("adapter.Get error: %s", err)
}
exampleKey = "another:redis:key"
// nil TTL represents the default value put in the New function
err = adapter.Set(exampleKey, exampleValue, nil)
if err != nil {
// remember to check for errors
log.Fatalf("adapter.Get error: %s", err)
}
}