89 lines
1.2 KiB
Go
89 lines
1.2 KiB
Go
package memstore
|
|
|
|
import (
|
|
"errors"
|
|
"time"
|
|
|
|
"github.com/go-redis/redis"
|
|
)
|
|
|
|
var redisStore *redis.Client
|
|
|
|
// InitClient -
|
|
func InitClient() error {
|
|
redisStore = redis.NewClient(&redis.Options{
|
|
Addr: "localhost:6379",
|
|
Password: "",
|
|
DB: 0,
|
|
})
|
|
|
|
_, err := redisStore.Ping().Result()
|
|
return err
|
|
}
|
|
|
|
// RedisSet -
|
|
func RedisSet(namespace, key string, val string, expire int) error {
|
|
var t time.Duration
|
|
if expire > 0 {
|
|
t = time.Second * time.Duration(expire)
|
|
}
|
|
var n string
|
|
if len(namespace) > 0 {
|
|
n += namespace
|
|
n += ":"
|
|
}
|
|
|
|
if len(key) == 0 {
|
|
return errors.New("key empty")
|
|
}
|
|
|
|
n += key
|
|
|
|
err := redisStore.Set(n, val, t).Err()
|
|
return err
|
|
}
|
|
|
|
// RedisGet -
|
|
func RedisGet(namespace, key string) (string, error) {
|
|
var n string
|
|
if len(namespace) > 0 {
|
|
n += namespace
|
|
n += ":"
|
|
}
|
|
|
|
if len(key) == 0 {
|
|
return "", errors.New("key empty")
|
|
}
|
|
|
|
if len(n) > 0 {
|
|
n += ":"
|
|
}
|
|
|
|
n += key
|
|
|
|
val, err := redisStore.Get(key).Result()
|
|
return val, err
|
|
}
|
|
|
|
// RedisDel -
|
|
func RedisDel(namespace, key string) error {
|
|
var n string
|
|
if len(namespace) > 0 {
|
|
n += namespace
|
|
n += ":"
|
|
}
|
|
|
|
if len(key) == 0 {
|
|
return errors.New("key empty")
|
|
}
|
|
|
|
if len(n) > 0 {
|
|
n += ":"
|
|
}
|
|
|
|
n += key
|
|
|
|
err := redisStore.Del(n).Err()
|
|
return err
|
|
}
|