package redisclient import ( "context" "github.com/demdxx/gocast" "github.com/redis/go-redis/v9" "strconv" "time" ) // redis 状态值管理 const ( TransferCallbackHandlerRedisStateKey = "TransferCallbackHandlerRedisStateKey" ) var keyMap = map[string]interface{}{ TransferCallbackHandlerRedisStateKey: "false", } // 服务重启 初始化状态 func stateInit(rds redis.UniversalClient) { for key, val := range keyMap { err := rds.Set(context.Background(), key, val, time.Duration(0)).Err() if err != nil { panic(err) } } } func GetBoolFromRedis(key string) (bool, error) { ctx := context.Background() val, err := DefaultClient().Get(ctx, key).Result() if err != nil { // 不存在则初始化一个值 if err == redis.Nil { if err = DefaultClient().Set(ctx, key, gocast.ToString(false), 0).Err(); err != nil { return false, err } } else { return false, err } } return strconv.ParseBool(val) } func SetBoolRoRedis(key string, ok bool) error { ctx := context.Background() return DefaultClient().Set(ctx, key, gocast.ToString(ok), time.Duration(0)).Err() }