package svredis import ( "apigame/service-common/svconst" "apigame/util/util-lx/lxredis" "apigame/util/utstring" "apigame/util/zjson" "apigame/util/zredis" "fmt" "github.com/astaxie/beego" "github.com/mitchellh/mapstructure" ) type RedisConfig struct { Host string `json:"host"` Port string `json:"port"` Pwd string `json:"pwd"` Db string `json:"Db"` Prefix string `json:"prefix"` } func Init() bool { { //初始化Redis redisconfig, _ := beego.AppConfig.GetSection("redis") var mredisconfig lxredis.MapRedisConfig err := mapstructure.Decode(redisconfig, &mredisconfig) if err != nil { fmt.Println(" mapstructure.Decode Error::" + err.Error()) } else { err = lxredis.InitRedis(mredisconfig) if err != nil { fmt.Println(" lxredis.InitRedis Error::" + err.Error()) return false } } fmt.Println(svconst.AppName + " redis init success") } //初始化Redis confText, _ := beego.AppConfig.GetSection("redis") var conf RedisConfig err := mapstructure.Decode(confText, &conf) if err != nil { fmt.Println("svredis.Init mapstructure.Decode Error::" + err.Error()) } zredis.Init(conf.Host+":"+conf.Port, conf.Pwd, utstring.StringToInt(conf.Db)) if !zredis.Check() { return false } fmt.Println(svconst.AppName + " redis init success") return true } func SaveData(gameId string, obj IRedisData) { info := obj.RedisInfo(gameId) _ = zredis.SetEx(zredis.GetConn(), 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(zredis.GetConn(), info.CacheKey) if err != nil { has = false return } err = zjson.Obj(text, &obj) if err != nil { fmt.Println(err) has = false return } return }