Files
oneterm/backend/util/cacheDb.go
2024-10-09 17:29:48 +08:00

30 lines
636 B
Go

package util
import (
"context"
"fmt"
"time"
redis "github.com/veops/oneterm/cache"
mysql "github.com/veops/oneterm/db"
"github.com/veops/oneterm/model"
)
func GetAllFromCacheDb[T model.Model](ctx context.Context, m T) (res []T, err error) {
k := fmt.Sprintf("all-%s", m.TableName())
if err = redis.Get(ctx, k, &res); err == nil {
return
}
if err = mysql.DB.Model(m).Find(&res).Error; err != nil {
return
}
redis.SetEx(ctx, k, res, time.Hour)
return
}
func DeleteAllFromCacheDb(ctx context.Context, m model.Model) (err error) {
k := fmt.Sprintf("all-%s", m.TableName())
err = redis.RC.Del(ctx, k).Err()
return
}