这期内容当中小编将会给大家带来有关支持分布式缓存的orm是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
给Orm 追加了分布式redis的支持, 目的是为了解决游戏服务器开发时, 数据变更的快速处理。
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")
//建立一个数据模型。
type UserInfo struct {
orm.Object
Id int64 `field:"id" auto:"true" index:"pk"`
Name string `field:"username"`
Passwd string `field:"password"`
}
更多信息>>
##新增 CacheModel 模型, 支持分布式redis作为数据库缓存。
import "github.com/ablegao/orm"
import _ "github.com/go-sql-driver/mysql"
type userB struct {
CacheModule
Uid int64 `field:"Id" index:"pk" cache:"user" `
Alias string `field:"Alias"`
Money int64 `field:"money" `
}
func main(){
orm.CacheConsistent.Add("127.0.0.1:6379") //添加多个redis服务器
orm.SetCachePrefix("nado") //默认nado . 将作为redis key 的前缀
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()
if err!= nil {
panic(err)
}
fmt.Println(b.Uid ,b.Alias ,b.Money)
b.Incrby("Money" , 100)
fmt.Println(b.Money)
b.Save() //不执行不会保存到数据库 只会修改redis数据。
}
上述就是小编为大家分享的支持分布式缓存的orm是怎样的了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/able/blog/370423