学堂 学堂 学堂公众号手机端

支持分布式缓存的orm是怎样的

lewis 1年前 (2024-04-08) 阅读数 16 #技术

这期内容当中小编将会给大家带来有关支持分布式缓存的orm是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

给Orm 追加了分布式redis的支持, 目的是为了解决游戏服务器开发时, 数据变更的快速处理。

Insert

go get github.com/ablegao/orm


##数据库Model 建立方法

//引用模块
import"github.com/ablegao/orm"

//mysql驱动
import_"github.com/go-sql-driver/mysql"

//建立连接
//参数分别为名称,驱动,连接字符串
//注:必须包含一个default连接,作为默认连接。
orm.NewDatabase("default","mysql","user:passwd@ip/database?charset=utf8")


//建立一个数据模型。
typeUserInfostruct{
	orm.Object
	Idint64`field:"id"auto:"true"index:"pk"`
	Namestring`field:"username"`
	Passwdstring`field:"password"`
}

更多信息>>

##新增 CacheModel 模型, 支持分布式redis作为数据库缓存。

import"github.com/ablegao/orm"
import_"github.com/go-sql-driver/mysql"

typeuserBstruct{
	CacheModule
	Uidint64`field:"Id"index:"pk"cache:"user"`
	Aliasstring`field:"Alias"`
	Moneyint64`field:"money"	`
}

funcmain(){
	orm.CacheConsistent.Add("127.0.0.1:6379")//添加多个redis服务器
	orm.SetCachePrefix("nado")//默认nado.将作为rediskey的前缀
	NewDatabase("default","mysql","happy:passwd@tcp(127.0.0.1:3306)/mydatabase?charset=utf8")


	b:=new(userB)
	b.Uid=10000
	err:=b.Objects(b).One()
	iferr!=nil{
		panic(err)
	}
	fmt.Println(b.Uid,b.Alias,b.Money)

	b.Incrby("Money",100)
	fmt.Println(b.Money)
	b.Save()//不执行不会保存到数据库只会修改redis数据。


}

上述就是小编为大家分享的支持分布式缓存的orm是怎样的了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注博信行业资讯频道。

版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门