优化redis 缓存过期时间

This commit is contained in:
liwei1dao 2023-09-12 15:29:15 +08:00
parent 001c93b3a0
commit 5083db9588
28 changed files with 57 additions and 58 deletions

View File

@ -11,7 +11,6 @@ import (
cfg "go_dreamfactory/sys/configure/structs"
"go_dreamfactory/sys/db"
"math"
"time"
"go.mongodb.org/mongo-driver/bson/primitive"
)
@ -77,7 +76,7 @@ func (this *modelBattleComp) createeve(session comm.IUserSession, conn *db.DBCon
return
}
if req.Format != nil {
model := db.NewDBModel(comm.TableHero, time.Hour, conn)
model := db.NewDBModel(comm.TableHero, conn)
record.Redflist = make([]*pb.DBBattleFormt, 1)
record.Redflist[0] = &pb.DBBattleFormt{
Leadpos: req.Format.Leadpos,
@ -218,7 +217,7 @@ func (this *modelBattleComp) createpve(session comm.IUserSession, conn *db.DBCon
Leadpos: req.Format.Leadpos,
Team: make([]*pb.BattleRole, len(req.Format.Format)),
}
model := db.NewDBModel(comm.TableHero, time.Hour, conn)
model := db.NewDBModel(comm.TableHero, conn)
if user, err = this.module.ModuleUser.GetUserExpand(session.GetUserId()); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
@ -366,7 +365,7 @@ func (this *modelBattleComp) createpvb(session comm.IUserSession, conn *db.DBCon
Leadpos: v.Leadpos,
Team: make([]*pb.BattleRole, len(v.Format)),
}
model := db.NewDBModel(comm.TableHero, time.Hour, conn)
model := db.NewDBModel(comm.TableHero, conn)
//自己的英雄阵营
for i, v := range v.Format {
if v != "" {
@ -625,7 +624,7 @@ func (this *modelBattleComp) createlpve(session comm.IUserSession, conn *db.DBCo
Leadpos: req.Format.Leadpos,
Team: make([]*pb.BattleRole, len(req.Format.Format)),
}
model := db.NewDBModel(comm.TableHero, time.Hour, conn)
model := db.NewDBModel(comm.TableHero, conn)
if user, err = this.module.ModuleUser.GetUserExpand(session.GetUserId()); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,

View File

@ -48,7 +48,7 @@ func (this *MCompModel) Start() (err error) {
if conn, err = db.Local(); err != nil {
return
}
this.DBModel = db.NewDBModel(this.TableName, this.Expired, conn)
this.DBModel = db.NewDBModel(this.TableName, conn)
return
}

View File

@ -11,7 +11,6 @@ import (
"go_dreamfactory/sys/configure"
cfg "go_dreamfactory/sys/configure/structs"
"go_dreamfactory/sys/db"
"time"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
@ -145,7 +144,7 @@ func (this *Dragon) QueryDragonByTagAndOid(tag string, objId []string) (dragon [
return
}
dragon = make([]*pb.DBDragon, 0)
model = db.NewDBModel(this.modelDragon.TableName, time.Hour, conn)
model = db.NewDBModel(this.modelDragon.TableName, conn)
result := make([]bson.M, 0)

View File

@ -27,7 +27,7 @@ func (this *apiComp) RankList(session comm.IUserSession, req *pb.EnchantRankList
return // 参数校验失败直接返回
}
conn, _ := db.Local()
dbModel := db.NewDBModel(comm.TableEnchantRank, 0, conn)
dbModel := db.NewDBModelByExpired(comm.TableEnchantRank, conn)
if !req.Friend {
var (
pipe *pipe.RedisPipe = this.module.modelEnchant.Redis.RedisPipe(context.TODO())

View File

@ -85,7 +85,7 @@ func (this *Enchant) CheckUserBaseEnchantInfo(uid string) (data []*pb.DBEnchantR
func (this *Enchant) CheckRank(uid string, boosID int32, report *pb.BattleReport, userinfo *pb.DBUser, score int64) {
conn_, _ := db.Cross() // 获取跨服数据库对象
model := db.NewDBModel(comm.TableEnchantRank, 0, conn_)
model := db.NewDBModelByExpired(comm.TableEnchantRank, conn_)
costTime := report.Costtime
szLine := make([]*pb.LineUp, len(report.Info.Redflist[0].Team))

View File

@ -7,7 +7,6 @@ import (
"go_dreamfactory/pb"
"go_dreamfactory/sys/db"
"go_dreamfactory/utils"
"time"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo/options"
@ -71,7 +70,7 @@ func (this *apiComp) GetRandUser(session comm.IUserSession, req *pb.GourmetGetRa
tag, _, b := utils.UIdSplit(session.GetUserId())
if b {
if conn, err := db.ServerDBConn(tag); err == nil {
dbModel := db.NewDBModel(comm.TableHero, time.Hour, conn)
dbModel := db.NewDBModel(comm.TableHero, conn)
if _data, err1 := dbModel.DB.Find(core.SqlTable(comm.TableUser), bson.M{}, options.Find().SetSort(bson.M{"lv": -1}).SetLimit(int64(req.People))); err1 == nil {
for _data.Next(context.TODO()) {
temp := &pb.DBUser{}

View File

@ -5,7 +5,6 @@ import (
"go_dreamfactory/pb"
"go_dreamfactory/sys/db"
"go_dreamfactory/utils"
"time"
)
//参数校验
@ -37,7 +36,7 @@ func (this *apiComp) Info(session comm.IUserSession, req *pb.HeroInfoReq) (errda
if tag, _, ok := utils.UIdSplit(uid); ok {
if conn, err := db.ServerDBConn(tag); err == nil {
dbModel := db.NewDBModel(comm.TableHero, time.Hour, conn)
dbModel := db.NewDBModel(comm.TableHero, conn)
for _, v := range req.HeroId {
if v == "" {
continue

View File

@ -91,7 +91,7 @@ func TimerStar() {
if !db.IsCross() {
conn, err := db.Cross()
if err == nil {
model := db.NewDBModel(comm.TablePagodaRecord, 0, conn)
model := db.NewDBModel(comm.TablePagodaRecord, conn)
//model.DB.DeleteMany(comm.TableSeasonPagoda, bson.M{}, options.Delete())
model.DB.DeleteMany(comm.TablePagodaRecord, bson.M{}, options.Delete())
for pos := 0; pos < comm.MaxRankNum; pos++ {

View File

@ -26,7 +26,7 @@ func (this *apiComp) RankList(session comm.IUserSession, req *pb.HuntingRankList
return // 参数校验失败直接返回
}
conn, _ := db.Local()
dbModel := db.NewDBModel(comm.TableHuntingRank, 0, conn)
dbModel := db.NewDBModelByExpired(comm.TableHuntingRank, conn)
if !req.Friend {
var (
pipe *pipe.RedisPipe = conn.Redis.RedisPipe(context.TODO())

View File

@ -63,7 +63,7 @@ func (this *ModelRank) getHuntingRankListByBossType(uid string, bossType int32)
if err != nil {
return nil
}
model := db.NewDBModel(comm.TableHuntingRank, 0, conn)
model := db.NewDBModelByExpired(comm.TableHuntingRank, conn)
err = model.GetList(uid, &ranks)
if err != nil {

View File

@ -10,7 +10,6 @@ import (
"go_dreamfactory/sys/db"
"math"
"strconv"
"time"
"github.com/go-redis/redis/v8"
"go.mongodb.org/mongo-driver/bson/primitive"
@ -87,7 +86,7 @@ func (this *Hunting) CheckUserBaseHuntingInfo(uid string) (data []*pb.DBHuntingR
func (this *Hunting) CheckRank(uid string, boosID int32, difficulty int32, report *pb.BattleReport) {
conn_, _ := db.Cross() // 获取跨服数据库对象
userinfo := this.ModuleUser.GetUser(uid)
model := db.NewDBModel(comm.TableHuntingRank, time.Hour, conn_)
model := db.NewDBModel(comm.TableHuntingRank, conn_)
costTime := report.Costtime
szLine := make([]*pb.LineUp, len(report.Info.Redflist[0].Team))

View File

@ -9,7 +9,6 @@ import (
cfg "go_dreamfactory/sys/configure/structs"
"go_dreamfactory/sys/db"
"go_dreamfactory/utils"
"time"
"go_dreamfactory/lego/base"
"go_dreamfactory/lego/core"
@ -71,7 +70,7 @@ func (this *Mail) SendNewMail(mail *pb.DBMailData, uid ...string) bool {
tag, _, b := utils.UIdSplit(id)
if b {
if conn, err := db.ServerDBConn(tag); err == nil {
dbModel := db.NewDBModel(comm.TableMail, time.Hour, conn)
dbModel := db.NewDBModel(comm.TableMail, conn)
mail.ObjId = primitive.NewObjectID().Hex()
mail.Check = false
mail.Reward = true
@ -147,7 +146,7 @@ func (this *Mail) Rpc_Mail(ctx context.Context, args *pb.DBMailData) (err error)
tag, _, b := utils.UIdSplit(args.Uid)
if b {
if conn, err = db.ServerDBConn(tag); err == nil {
dbModel := db.NewDBModel(comm.TableMail, time.Hour, conn)
dbModel := db.NewDBModel(comm.TableMail, conn)
_, err = dbModel.DB.InsertOne(comm.TableMail, args)
if err != nil {
this.Error("Create Rpc_Mail failed", log.Field{Key: "uid", Value: args.Uid}, log.Field{Key: "err", Value: err.Error()})
@ -201,7 +200,7 @@ func (this *Mail) SendMailByCid(session comm.IUserSession, cid string, res []*pb
tag, _, b := utils.UIdSplit(session.GetUserId())
if b {
if conn, err := db.ServerDBConn(tag); err == nil {
dbModel := db.NewDBModel(comm.TableMail, time.Hour, conn)
dbModel := db.NewDBModel(comm.TableMail, conn)
if _, err = dbModel.DB.InsertOne(comm.TableMail, mail); err != nil {
this.Errorf("InsertOne mail failed:%v", err)
@ -278,7 +277,7 @@ func (this *Mail) SendMailByUID(uid string, cid string, res []*cfg.Gameatn, Para
tag, _, b := utils.UIdSplit(uid)
if b {
if conn, err := db.ServerDBConn(tag); err == nil {
dbModel := db.NewDBModel(comm.TableMail, time.Hour, conn)
dbModel := db.NewDBModel(comm.TableMail, conn)
if _, err = dbModel.DB.InsertOne(comm.TableMail, mail); err != nil {
this.Errorf("InsertOne mail failed:%v", err)
@ -345,7 +344,7 @@ func (this *Mail) SendRewardMailByCid(session comm.IUserSession, cid string, res
tag, _, b := utils.UIdSplit(session.GetUserId())
if b {
if conn, err := db.ServerDBConn(tag); err == nil {
dbModel := db.NewDBModel(comm.TableMail, time.Hour, conn)
dbModel := db.NewDBModel(comm.TableMail, conn)
if _, err = dbModel.DB.InsertOne(comm.TableMail, mail); err != nil {
this.Errorf("InsertOne mail failed:%v", err)
@ -402,7 +401,7 @@ func (this *Mail) SendMailToUsers(uids []string, cid string, res []*cfg.Gameatn,
Cid: cid,
Param: param,
}
dbModel := db.NewDBModel(comm.TableMail, time.Hour, conn)
dbModel := db.NewDBModel(comm.TableMail, conn)
mail.ObjId = primitive.NewObjectID().Hex()
mail.Check = false
mail.Reward = true

View File

@ -535,7 +535,7 @@ func (this *ModuleBase) GetDBNodule(session comm.IUserSession, tableName string,
return
}
}
model = db.NewDBModel(tableName, expired, conn)
model = db.NewDBModel(tableName, conn)
return
}
@ -553,7 +553,7 @@ func (this *ModuleBase) GetCrossDBModel(tableName string) (model *db.DBModel, er
return
}
}
model = db.NewDBModel(tableName, time.Hour, conn)
model = db.NewDBModel(tableName, conn)
return
}
@ -575,7 +575,7 @@ func (this *ModuleBase) GetDBModelByUid(uid, tableName string) (model *db.DBMode
return
}
}
model = db.NewDBModel(tableName, time.Hour, conn)
model = db.NewDBModel(tableName, conn)
return
}

View File

@ -5,7 +5,6 @@ import (
"go_dreamfactory/pb"
"go_dreamfactory/sys/db"
"strconv"
"time"
"go.mongodb.org/mongo-driver/bson/primitive"
)
@ -166,7 +165,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal
// 数据写到跨服中
if conn_, err := db.Cross(); err == nil {
dbModel := db.NewDBModel(comm.TablePagodaRecord, time.Hour, conn_)
dbModel := db.NewDBModel(comm.TablePagodaRecord, conn_)
dbModel.AddList(uid, newData.Id, newData)
} else {
this.module.Errorf("db crosserr :%v", err)

View File

@ -37,7 +37,7 @@ func (this *apiComp) CrossRaceRankList(session comm.IUserSession, req *pb.Pagoda
if this.module.IsCross() {
conn, _ := db.Local()
dbModel := db.NewDBModel(comm.TableRaceRecord, 0, conn)
dbModel := db.NewDBModel(comm.TableRaceRecord, conn)
pipe = conn.Redis.RedisPipe(context.TODO())
tablename := "race" + strconv.Itoa(int(req.Raceid))

View File

@ -6,7 +6,6 @@ import (
"go_dreamfactory/sys/configure"
"go_dreamfactory/sys/db"
"strconv"
"time"
"go.mongodb.org/mongo-driver/bson/primitive"
)
@ -147,7 +146,7 @@ func (this *apiComp) ChallengeRaceOver(session comm.IUserSession, req *pb.Pagoda
// 数据写到跨服中
if conn_, err := db.Cross(); err == nil {
dbModel := db.NewDBModel(comm.TableRaceRecord, time.Hour, conn_)
dbModel := db.NewDBModel(comm.TableRaceRecord, conn_)
result := make([]*pb.DBRacePagodaRecord, 0)
bRet := false
dbModel.GetList(uid, &result)

View File

@ -43,7 +43,7 @@ func (this *ModelRank) getPagodaRankListByFloorid(uid string, cid int32) *pb.DBP
}
} else {
if conn, err := db.Cross(); err == nil {
dbModel := db.NewDBModel(comm.TablePagodaRecord, 0, conn)
dbModel := db.NewDBModel(comm.TablePagodaRecord, conn)
if err = dbModel.GetList(uid, &pagodaRank); err != nil {
return nil
}

View File

@ -140,7 +140,7 @@ func (this *Practice) AddItems(session comm.IUserSession, items map[string]int32
this.Errorln(err)
return
}
model := db.NewDBModel(comm.TablePandata, time.Hour, conn)
model := db.NewDBModel(comm.TablePandata, conn)
if err = model.Get(session.GetUserId(), room); err != nil && err != mgo.MongodbNil {
this.Errorln(err)
return
@ -401,7 +401,7 @@ func (this *Practice) RPC_ModulePracticeUnLockPillar(ctx context.Context, args *
// 一键踢馆 (跨服)
func (this *Practice) CleanUpNpc(uid string) {
conn_, _ := db.Cross() // 获取跨服数据库对象
model := db.NewDBModel(comm.TablePandata, time.Hour, conn_)
model := db.NewDBModel(comm.TablePandata, conn_)
result := &pb.DBPracticeRoom{}
if err := model.Get(uid, result); err != nil && err != mgo.MongodbNil {
return

View File

@ -368,7 +368,7 @@ func (this *Sociaty) RpcUpdateUserTask(ctx context.Context, p *TaskParams, reply
if err != nil {
return err
}
model := db.NewDBModel(comm.TableSociatyTask, 0, conn)
model := db.NewDBModel(comm.TableSociatyTask, conn)
if err := model.Redis.HMSet(fmt.Sprintf("%s:%s-%s", this.modelSociatyTask.TableName,
p.SociatyId, p.Uid), p.Data); err != nil {

View File

@ -7,7 +7,6 @@ import (
"go_dreamfactory/lego/core/cbase"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/sys/db"
"time"
)
/*
@ -90,7 +89,7 @@ func (this *Timer) getDBModelByUid(uid, tableName string) (model *db.DBModel, er
return
}
}
model = db.NewDBModel(tableName, time.Hour, conn)
model = db.NewDBModel(tableName, conn)
return
}

View File

@ -4,7 +4,6 @@ import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"go_dreamfactory/sys/db"
"time"
"go.mongodb.org/mongo-driver/bson"
)
@ -20,7 +19,7 @@ func (this *apiComp) GetServerData(session comm.IUserSession, req *pb.UserGetSer
}
if conn, err := db.Cross(); err == nil {
dbModel := db.NewDBModel(comm.TableHero, time.Hour, conn)
dbModel := db.NewDBModel(comm.TableHero, conn)
if _data := dbModel.DB.FindOne("serverdata", bson.M{}); _data != nil {
_data.Decode(rsp.Data)
} else {

View File

@ -218,7 +218,7 @@ func (this *User) CrossUserOnlineList() ([]*pb.CacheUser, error) {
if err != nil {
return nil, err
}
model := db.NewDBModel(comm.TableSession, 0, conn)
model := db.NewDBModelByExpired(comm.TableSession, conn)
var cache []*pb.CacheUser
if err := model.GetList(comm.RDS_EMPTY, &cache); err != nil {
return nil, err
@ -232,7 +232,7 @@ func (this *User) crossUser(uid string) (*pb.CacheUser, error) {
if err != nil {
return nil, err
}
model := db.NewDBModel(comm.TableSession, 0, conn)
model := db.NewDBModelByExpired(comm.TableSession, conn)
cache := &pb.CacheUser{}
if err := model.Get(uid, cache); err != nil {
return nil, err
@ -280,7 +280,7 @@ func (this *User) RpcCreateSociaty(ctx context.Context, req *pb.RPCGeneralReqA2,
if err != nil {
return err
}
model := db.NewDBModel(comm.TableSociaty, 0, conn)
model := db.NewDBModel(comm.TableSociaty, conn)
sociaty := &pb.DBSociaty{}
_id := primitive.NewObjectID().Hex()
@ -800,7 +800,7 @@ func (this *User) getUserFromRemoteDb(uid string, rsp *pb.DBUser) error {
if err != nil {
return err
}
model := db.NewDBModel(comm.TableUser, 0, conn)
model := db.NewDBModel(comm.TableUser, conn)
if err := model.Get(uid, rsp); err != nil {
this.Errorln("Get User:", err)
return err
@ -817,7 +817,7 @@ func (this *User) getUserExpandFromRemoteDb(uid string, rsp *pb.DBUserExpand) er
if err != nil {
return err
}
model := db.NewDBModel(comm.TableUserExpand, 0, conn)
model := db.NewDBModel(comm.TableUserExpand, conn)
if err := model.Get(uid, rsp); err != nil {
return err
@ -834,7 +834,7 @@ func (this *User) changeUserExpandFromRemoteDb(uid string, data map[string]inter
if err != nil {
return err
}
model := db.NewDBModel(comm.TableUserExpand, 0, conn)
model := db.NewDBModel(comm.TableUserExpand, conn)
if err := model.Change(uid, data); err != nil {
return err
@ -873,7 +873,7 @@ func (this *User) RpcGetAllOnlineUser(ctx context.Context, args *pb.EmptyReq, re
if err != nil {
return err
}
model := db.NewDBModel(comm.TableSession, 0, conn)
model := db.NewDBModelByExpired(comm.TableSession, conn)
var cache []*pb.CacheUser
if err := model.GetList(comm.RDS_EMPTY, &cache); err != nil {
return err
@ -891,7 +891,7 @@ func (this *User) RpcGetCrossUserSession(ctx context.Context, req *pb.UIdReq, re
if err != nil {
return err
}
model := db.NewDBModel(comm.TableSession, 0, conn)
model := db.NewDBModelByExpired(comm.TableSession, conn)
if err := model.GetListObj(comm.RDS_EMPTY, req.Uid, reply); err != nil {
if err != mongo.ErrNoDocuments {
return err

View File

@ -32,7 +32,7 @@ func (this *apiComp) RankList(session comm.IUserSession, req *pb.VikingRankListR
}
conn, _ := db.Local()
dbModel := db.NewDBModel(comm.TableVikingRank, 0, conn)
dbModel := db.NewDBModelByExpired(comm.TableVikingRank, conn)
if !req.Friend {
var (
pipe *pipe.RedisPipe = conn.Redis.RedisPipe(context.TODO())

View File

@ -55,7 +55,7 @@ func (this *apiComp) SeasonRank(session comm.IUserSession, req *pb.VikingSeasonR
}
}
dbModel := db.NewDBModel(comm.TableVikingSRank, 0, conn)
dbModel := db.NewDBModelByExpired(comm.TableVikingSRank, conn)
pipe = conn.Redis.RedisPipe(context.TODO())
rd = pipe.ZRevRange("vSeasonRank"+strconv.Itoa(int(req.BoosType)), 0, comm.MaxRankList)

View File

@ -61,7 +61,7 @@ func (this *ModelRank) getVikingRankListByBossType(uid string, bossType int32) *
if err != nil {
return nil
}
model := db.NewDBModel(comm.TableVikingRank, 0, conn)
model := db.NewDBModelByExpired(comm.TableVikingRank, conn)
ranks := make([]*pb.DBVikingRank, 0)
err = model.GetList(uid, &ranks)
if err != nil {

View File

@ -107,7 +107,7 @@ func (this *Viking) CheckRank(uid string, boosID int32, difficulty int32, report
return
}
userinfo := this.ModuleUser.GetUser(uid)
model := db.NewDBModel(comm.TableVikingRank, 0, conn_)
model := db.NewDBModelByExpired(comm.TableVikingRank, conn_)
costTime := report.Costtime
szLine := make([]*pb.LineUp, len(report.Info.Redflist[0].Team))
@ -309,7 +309,7 @@ func (this *Viking) CheckSeasonRank(uid string, boosID int32, difficulty int32,
}
userinfo := this.ModuleUser.GetUser(uid)
model := db.NewDBModel(comm.TableVikingSRank, 0, conn_)
model := db.NewDBModelByExpired(comm.TableVikingSRank, conn_)
// 写入排行榜
objID := ""

View File

@ -187,7 +187,7 @@ func (this *SCompGateRoute) NoticeUserLogin(ctx context.Context, args *pb.Notice
log.Errorf("[RPC] NoticeUserLogin err: %v", err)
return err
}
model := db.NewDBModel(comm.TableSession, 0, conn)
model := db.NewDBModelByExpired(comm.TableSession, conn)
user := &pb.CacheUser{
Uid: args.UserId,
SessionId: args.UserSessionId,

View File

@ -38,10 +38,19 @@ const (
DB_ModelTable core.SqlTable = "model_log"
)
func NewDBModel(tableName string, expired time.Duration, conn *DBConn) *DBModel {
func NewDBModel(tableName string, conn *DBConn) *DBModel {
return &DBModel{
TableName: tableName,
Expired: expired,
Expired: time.Minute * 15,
conn: conn,
Redis: conn.Redis,
DB: conn.Mgo,
}
}
func NewDBModelByExpired(tableName string, conn *DBConn) *DBModel {
return &DBModel{
TableName: tableName,
Expired: 0,
conn: conn,
Redis: conn.Redis,
DB: conn.Mgo,