package svredis import ( "apigame/service-common/svconst" "apigame/util/util-lx/lxredis" "apigame/util/utstring" "apigame/util/zjson" "apigame/util/zredis" "apigame/util/zredislock" "fmt" "github.com/astaxie/beego" "github.com/mitchellh/mapstructure" ) func Init() bool { confText, _ := beego.AppConfig.GetSection("redis") var confRedis lxredis.MapRedisConfig err := mapstructure.Decode(confText, &confRedis) if err != nil { fmt.Println(" mapstructure.Decode redis Error::" + err.Error()) return false } { // 初始化Redis err = lxredis.InitRedis(confRedis) if err != nil { fmt.Println(" lxredis.InitRedis Error::" + err.Error()) return false } fmt.Println(svconst.AppName + " lxredis init success") } // 初始化Redis { zredis.Init(confRedis.Host+":"+confRedis.Port, confRedis.Pwd, utstring.StringToInt(confRedis.Db)) if !zredis.Check() { return false } fmt.Println(svconst.AppName + " zredis init success") } // 初始化redis锁 { zredislock.Init(confRedis.Host+":"+confRedis.Port, confRedis.Pwd, utstring.StringToInt(confRedis.Db)) fmt.Println(svconst.AppName + " zredislock init success") } return true } func SaveData(gameId string, obj IRedisData) { info := obj.RedisInfo(gameId) _ = zredis.SetEx(info.CacheKey, zjson.Str(obj), info.CacheTime) } func LoadData[T IRedisData](gameId string, obj T) (has bool) { has = true info := obj.RedisInfo(gameId) text, err := zredis.Get(info.CacheKey) if err != nil { has = false return } err = zjson.Obj(text, &obj) if err != nil { fmt.Println(err) has = false return } return }