4.2 数据模型的扩充处理
4.2.1 分离字段存储到Redis中
type Prompts struct {
...
...
Body string `json:"Body" form:"Body" gorm:"column:body;comment:;type:text;"`
}type Prompts struct {
...
...
Body string `json:"Body" form:"Body" gorm:"-:all"`
}
func (p *Prompts) AfterCreate(tx *gorm.DB) (err error) {
// 将Redis中存储键交给getRedisKey,而不是每次自己拼凑,防止拼写错误
redisKey := p.getRedisKey()
if global.GVA_REDIS == nil {
return fmt.Errorf("Redis客户端未初始化")
}
err = global.GVA_REDIS.Set(context.Background(), redisKey, p.Body, 0).Err()
return nil
}
// 根据记录的MySQL中的主键值返回Redis中存储的键名
func (p *Prompts) getRedisKey() string {
return fmt.Sprintf("prompt_body:%d", p.ID)
}4.2.2 读取数据时,自动补全Redis中的字段
Last updated