all repos — navani @ 40dd2de2c974ae8dbe1dcdb59a9382a8ead35513

forlater's primary mail processing service

cache/redis.go (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
package cache

import (
	"github.com/gomodule/redigo/redis"
)

type conn struct {
	redis.Conn
}

// Returns a new redis connection.
func NewConn() (conn, error) {
	c, err := redis.Dial("tcp", ":6379")
	if err != nil {
		c.Close()
		return conn{}, err
	}
	return conn{c}, nil
}

// SET command.
func (c *conn) Set(args ...interface{}) (interface{}, error) {
	cmd := "SET"
	reply, err := c.Do(cmd, args...)
	if err != nil {
		return nil, err
	}
	return reply, nil
}

// GET command. We stringify the response.
func (c *conn) Get(args ...interface{}) (string, error) {
	cmd := "GET"
	reply, err := redis.String(c.Do(cmd, args...))
	if err != nil {
		return "", err
	}
	return reply, nil
}