finclip-app-manager/vendor/gitlab.finogeeks.club/finclip-backend-v2/finclip-redis/command.go

107 lines
3.3 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package fcredis
import (
"context"
goRedis "github.com/go-redis/redis/v8"
"time"
)
func Client() goRedis.UniversalClient {
return gUniClient
}
// Set Zero expiration means the key has no expiration time.
func Set(ctx context.Context, key string, value interface{}, expiration time.Duration) (string, error) {
return gUniClient.Set(ctx, key, value, expiration).Result()
}
func Del(ctx context.Context, key string) (int64, error) {
return gUniClient.Del(ctx, key).Result()
}
// SetNx Zero expiration means the key has no expiration time.
func SetNx(ctx context.Context, key string, value interface{}, expiration time.Duration) (bool /*key is not exist*/, error) {
return gUniClient.SetNX(ctx, key, value, expiration).Result()
}
func SetBytes(ctx context.Context, key string, value []byte, expiration time.Duration) (string, error) {
return Set(ctx, key, string(value), expiration)
}
func LPush(ctx context.Context, key string, values ...interface{}) (int64, error) {
return gUniClient.LPush(ctx, key, values...).Result()
}
func LRem(ctx context.Context, key string, count int64, value string) (int64, error) {
return gUniClient.LRem(ctx, key, count, value).Result()
}
func LPop(ctx context.Context, key string) (string, error) {
return gUniClient.LPop(ctx, key).Result()
}
func LRange(ctx context.Context, key string, begin, end int64) ([]string, error) {
return gUniClient.LRange(ctx, key, begin, end).Result()
}
func ScriptLoad(ctx context.Context, script string) (string, error) {
return gUniClient.ScriptLoad(ctx, script).Result()
}
func EvalSha(ctx context.Context, sha1 string, keys []string, args ...interface{}) (interface{}, error) {
return gUniClient.EvalSha(ctx, sha1, keys, args...).Result()
}
func Eval(ctx context.Context, script string, keys []string, args ...interface{}) (interface{}, error) {
return gUniClient.Eval(ctx, script, keys, args...).Result()
}
// Expire returns bool (0/1) ,false: the key not exist
func Expire(ctx context.Context, key string, t time.Duration) (bool, error) {
return gUniClient.Expire(ctx, key, t).Result()
}
//Incr return result
func Incr(ctx context.Context, key string) (int64, error) {
return gUniClient.Incr(ctx, key).Result()
}
func Publish(ctx context.Context, channel string, value string) (int64, error) {
return gUniClient.Publish(ctx, channel, value).Result()
}
//Subscribe 的返回具体使用看其源码示例
func Subscribe(ctx context.Context, channels ...string) *goRedis.PubSub {
return gUniClient.Subscribe(ctx, channels...)
}
//Lock 返回true代表key不存在加锁成功
//Lock 返回false代表key存在加锁失败
func Lock(ctx context.Context, key string, expiration time.Duration) (bool, error) {
return gUniClient.SetNX(ctx, key, "1", expiration).Result()
}
func UnLock(ctx context.Context, key string) (int64, error) {
return gUniClient.Del(ctx, key).Result()
}
func Get(ctx context.Context, key string) (string, error) {
return get(ctx, key).Result()
}
func GetBytes(ctx context.Context, key string) ([]byte, error) {
return get(ctx, key).Bytes()
}
func GetString(ctx context.Context, key string) (string, error) {
return get(ctx, key).Result()
}
func TTL(ctx context.Context, key string) (time.Duration, error) {
return gUniClient.TTL(ctx, key).Result()
}
func get(ctx context.Context, key string) *goRedis.StringCmd {
return gUniClient.Get(ctx, key)
}