mirror of
https://gitee.com/dromara/mayfly-go
synced 2025-11-03 07:50:25 +08:00
76 lines
1.4 KiB
Go
76 lines
1.4 KiB
Go
package rediscli
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"github.com/redis/go-redis/v9"
|
|
)
|
|
|
|
var cli *redis.Client
|
|
|
|
func SetCli(client *redis.Client) {
|
|
cli = client
|
|
}
|
|
|
|
func GetCli() *redis.Client {
|
|
return cli
|
|
}
|
|
|
|
// get key value
|
|
func Get(key string) (string, error) {
|
|
return cli.Get(context.TODO(), key).Result()
|
|
}
|
|
|
|
// set key value
|
|
func Set(key string, val string, expiration time.Duration) error {
|
|
if expiration < 0 {
|
|
expiration = 0
|
|
}
|
|
return cli.Set(context.TODO(), key, val, expiration).Err()
|
|
}
|
|
|
|
// Del 删除key
|
|
func Del(key string) (int64, error) {
|
|
return cli.Del(context.TODO(), key).Result()
|
|
}
|
|
|
|
// DelByKeyPrefix 根据key前缀删除key
|
|
func DelByKeyPrefix(keyPrefix string) error {
|
|
res, err := cli.Keys(context.TODO(), keyPrefix+"*").Result()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
for _, key := range res {
|
|
Del(key)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func HSet(key string, field string, val any) {
|
|
cli.HSet(context.TODO(), key, field, val)
|
|
}
|
|
|
|
// hget
|
|
func HGet(key string, field string) string {
|
|
val, _ := cli.HGet(context.TODO(), key, field).Result()
|
|
return val
|
|
}
|
|
|
|
// hget
|
|
func HExist(key string, field string) bool {
|
|
val, _ := cli.HExists(context.TODO(), key, field).Result()
|
|
return val
|
|
}
|
|
|
|
// hgetall
|
|
func HGetAll(key string) map[string]string {
|
|
vals, _ := cli.HGetAll(context.TODO(), key).Result()
|
|
return vals
|
|
}
|
|
|
|
// hdel
|
|
func HDel(key string, fields ...string) int {
|
|
return int(cli.HDel(context.TODO(), key, fields...).Val())
|
|
}
|