推广

Golang开发:xorm+gzip实现mysql中字符串压缩存取。

iseeyu3年前 (2023-12-25)推广127

开发中,遇到mysql大的字符串存储需求,也不用于查询,只是存储一下

可以使用压缩算法来降低存储的使用,也能加速数据存取,毕竟mysql得存取成本还是挺高的

基于简单的方案:xorm+gzip压缩

xorm提供特定的接口Conversion,可以对实现该接口的数据类型存取时自动进行转换,还是挺方便的

type Conversion interface {
    FromDB([]byte) error
    ToDB() ([]byte, error)
}

因为数据存取的都是byte,所以在mysql中的数据类型需要对应的设置为blob类型。

实现

import (
	\"bytes\"
	\"compress/gzip\"
	\"encoding/json\"
	\"io\"
)

type ZipAlerts []*Alert

// FromDB implement xorm db interface
func (za *ZipAlerts) FromDB(bs []byte) error {
	if bs == nil {
		return nil
	}
	zr, err := gzip.NewReader(bytes.NewBuffer(bs))
	if err != nil {
		return err
	}
	var buf bytes.Buffer
	_, err = io.Copy(&buf, zr)
	if err != nil {
		return err
	}
	var znf ZipAlerts
	err = json.Unmarshal(buf.Bytes(), &znf)
	if err != nil {
		return err
	}
	*za = znf
	return nil
}

// ToDB implement xorm db interface
func (za *ZipAlerts) ToDB() ([]byte, error) {
	if za == nil {
		return nil, nil
	}
	data, err := json.Marshal(za)
	if err != nil {
		return nil, err
	}
	var buf bytes.Buffer
	zw := gzip.NewWriter(&buf)
	_, err = zw.Write(data)
	if err != nil {
		return nil, err
	}
	zw.Close()
	return buf.Bytes(), nil
}

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/111971.html

相关文章

超级完整版android 图片上传,包括客户端和后台服务器

超级完整版android 图片上传,包括客户端和后台服务器

第一个是图片选择框架 第二个是图片加载工具 需要引用jitpack的库 具体使用我就不多讲了,gIthub地址—>https://github.com/LuckSiege/PictureSelector 需要注意的是要用到gitbub  demo包里的...

SEO站长做网站数据分析有点什么?

SEO站长做网站数据分析有点什么?

其实,江西SEO曾庆平觉得最应该做的是百度后台的数据剖析,经过后台的数据剖析能找到网站有哪些缺陷以及用户对现有网站哪一部分看的更多,找到这些关于网站后期的优化十分的有协助,找到数据就等于找到用户需求。 榜首、剖析ip、pv、uv的份额从实在性说来uv是实在的用户,而ip仅仅一个地址段。首要要看的...

没有能量医学做武器,新冠就无法终结!

没有能量医学做武器,新冠就无法终结!

这场疫情需要有新的认识,那就是中医中药有效!中医理论也有效,西医是物质医学,无法解决能量疾病,新冠疫情就是能量疾病!这场疫情暴露出几点物质医学的不可靠:第一点:在大众的观念里,新冠病毒就是绝对致病原,阳了就等于疾病,不消灭病毒好像就是世界末日了!事实上,病毒造成疾病是有限的...

社群运营:几个方法,教你攻克流量关!

社群运营:几个方法,教你攻克流量关!

流量关   如果你建了个社群,运营得非常好,但没多少人知道你这个社群,那你的社群规模还是上不去。社群规模上不去,收入就上不去。   所以要做社群,首先得过流量关。   怎么攻克流量关呢?   常见...

【seo整站优化系统】解决网站内页收录的步骤与方法。

【seo整站优化系统】解决网站内页收录的步骤与方法。

如果你在SEO行业工作很长时间,你会遇到各种奇怪的问题。有时候它真的让你困惑。你不知道的是为什么。例如,网站长时间只收录一个主页,没有内部页面。   这种感觉让SEO工作人员非常不安,也给SEO工作带来了很多影响,比如:   (1)很少有人愿意或害怕与你交...

我来分享想要做好网络营销,网站推广很重要。

我来分享想要做好网络营销,网站推广很重要。

现如今,互联网已经成为我们生活中不可或缺的一部分,无论是学习、工作还是日常的网购、查阅资料都离不开互联网的应用。试想一个企业的网站如果没有办法让搜索引擎收录,那么久会损失很多网络用户,也失去了更多营销的的机会。很多企业认为做了企业网站就是开始了网络营销,简直是天方夜谭,做了网站都不做,就别谈什么网络...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片