文档章节

一个支持分布式缓存的orm

Able
 Able
发布于 2015/01/22 00:20
字数 339
阅读 158
收藏 0
点赞 0
评论 0

给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")


//建立一个数据模型。 
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数据。 


}

© 著作权归作者所有

共有 人打赏支持
Able

Able

粉丝 5
博文 8
码字总数 3032
作品 5
朝阳
CTO(技术副总裁)
数据映射组件NewLife.XCode优势

数据映射组件XCode优势 XCode是一个超越了ORM范围的映射组件,除了对象到关系数据库的映射外,还有到网络和其它二进制形式等的映射,所以称之为数据映射组件。 相对于国内外其它ORM,XCode具...

长征6号 ⋅ 2016/11/27 ⋅ 0

Java 集群缓存系统--Cacheonix

Cacheonix 是一个开源的 Java 的集群缓存和分布式数据管理框架,可让用户实现 Java 应用的伸缩性。 主要特点: 可靠的分布式 Java 缓存 通过复制实现高可用性 支持泛型的缓存 API 可与 ORM ...

匿名 ⋅ 2012/10/14 ⋅ 0

CmlPHP V2.6.4 发布,快速稳定易维护的 PHP 框架

CmlPHP V2.6.4 发布了,本次更新: orm添加 paramsAutoReset方法。用于设置是否清空查询条件和参数用于相同条件不同查询。 锁缓存 针对单独实例存放 CmlModel 添加mapDbAndTable方法 语法糖 ...

雨空 ⋅ 2016/06/08 ⋅ 9

CmlPHP V2.7.1,快速稳定易维护的 PHP 框架

CmlPHP V2.7.1 发布了,本次发布主要更新如下: 添加命令行组件 添加数据库迁移的支持 参考http://doc.cmlphp.com/devintro/migrate.html orm mysql支持只返回语句不执行。用于子查询 orm my...

雨空 ⋅ 2016/11/07 ⋅ 4

CmlPHP V2.8.0 发布,快速稳定易维护的 PHP 框架

CmlPHP V2.8.0 发布了。 过去不长的时间里 php 界发生了很多大事,很多牛逼的原生协程、半协程框架横空出世。有 zanphp、swoft、php-msf 等等。做为一名 php 开发人员为 php 使用场景的扩宽感...

雨空 ⋅ 01/04 ⋅ 3

CmlPHP V2.6.2 发布,快速稳定易维护的PHP 框架

CmlPHP V2.6.2 发布了,本次更新: 数据库默认编码改为utf8mb4 orm mysql驱动 get和select方法。读写分离时支持强制指定从主库读取数据。 orm select 支持直接传limit参数 添加onlyInitEnvir...

雨空 ⋅ 2016/03/30 ⋅ 1

使用spring集成hibernate学习笔记

1.JDBC的自行车无法满足我们对复杂任务的需求 对持久化的复杂需求以下几点: a.懒加载(需要的时候进行加载) b.预先抓取(一个查询获取完整的关联对象) c.级联(更改数据库的同时修改其他表)...

ordiy ⋅ 2016/08/07 ⋅ 0

Jboot 1.0-rc.3 发布,基于 JFinal 的微服务框架

Jboot是一个基于jfinal、undertow开发的一个类似springboot的开源框架, 我们已经在正式的商业上线项目中使用。到目前为止,Jboot已经支持如下功能: 1、JFinal 核心的自动注入:包含了JFina...

michaely ⋅ 2017/10/23 ⋅ 8

CmlPHP V2.7.3,快速稳定易维护的 PHP 框架

CmlPHP V2.7.3 发布了,本次发布主要更新如下: model实例支持连惯访问db的方法 orm添加 getOneValue chunk及plunk方法 CmlPHP 是基于php5.3+(v2.7+要求php5.4+)版本(已经测试过php7)开发的M...

雨空 ⋅ 2016/11/30 ⋅ 0

Apache Gora 0.8 发布,NoSQL 的 ORM 框架

Apache Gora 0.8 已发布,Gora 是一个应用于 NoSQL 数据库的 ORM 框架。特性包括: 列存储 key value 存储 文档存储 分布式内存 key/value 存储 内存数据网格 内存缓存 分布式多模型存储 内存...

王练 ⋅ 2017/09/22 ⋅ 2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Android JNI 读写Bitmap的方法

Java层创建Bitmap,通过JNI将Bitmap传到C/C++进行处理 Java部分 public static native boolean greenBitmap(Bitmap bitmap); C/C++部分 JNIEXPORT jboolean JNICALL Java_com_test_Test_gree......

国仔饼 ⋅ 14分钟前 ⋅ 0

一次性让你懂async/await,解决回调地狱

什么是async? 欢迎留言讨论 async 函数是 Generator 函数的语法糖。使用 关键字 async 来表示,在函数内部使用 await 来表示异步。相较于 Generator,async 函数的改进在于下面四点: 内置执...

阿K1225 ⋅ 14分钟前 ⋅ 0

angular常用命令

.下载更新操作 1.利用npm下载angular的命令行工具AngularCLI: npm install -g @angular/cli 2.下载jquery: npm install --save jquery 3.更新npm: npm i -g npm 4.更新angular: ng update ......

消散了的诗意 ⋅ 17分钟前 ⋅ 0

window.print 页面打印

定义和用法 print() 方法用于打印当前窗口的内容。 语法 window.print(); window.print() 实际上,是浏览器打印功能菜单的一种程序调用。与点击打印功能菜单一样,不能精确分页,不能设置纸型...

初学者的优化 ⋅ 17分钟前 ⋅ 0

魔兽世界 7.0版本上 PVE装备全攻略

  T套 因为大家应该都会打穿副本的所以具体是哪个boss我就不说了。   T1: 所有套装都在【熔火之心】出   T2: 头原来是在【奥妮克希亚的巢穴】改到黑翼之巢的奈法利安了,腿是在【熔火之...

wangchen1999 ⋅ 18分钟前 ⋅ 0

java.math.BigDecimal使用小结

原文地址 java.math.BigDecimal使用小结 divide方法 使用BigDecimal.divide方法时一定要考虑: 除数是否为0 商是否是无限小数 正确的使用方式 判断除数是否为0,是0做另外的处理逻辑 调用除法...

666B ⋅ 21分钟前 ⋅ 0

关于qstring转char乱码问题。

if (OpenClipboard(NULL)) { HGLOBAL hgClip; EmptyClipboard(); QByteArray byay = FValue.toLocal8Bit(); //转latin编码 char *bochsrc_line = byay.data(); hgClip = GlobalAlloc(GMEM_DD......

backtrackx ⋅ 21分钟前 ⋅ 0

了解SSH加密和连接过程

介绍 SSH或安全shell是安全协议,也是安全管理远程服务器的最常用方式。通过使用多种加密技术,SSH提供了一种机制,用于在双方之间建立加密安全连接,对彼此进行身份验证,以及来回传递命令和...

吴伟祥 ⋅ 27分钟前 ⋅ 0

微信小程序

小程序的全局配置app.json 微信小程序的全局配置保存在app.json文件中。开发者通过使用app.json来配置页面文件(pages)的路径、窗口(window)表现、设定网络超时时间值(networkTimeout)以...

上官清偌 ⋅ 30分钟前 ⋅ 0

【转】百度坐标坐标系之间的转换(JS版代码)

/** * Created by Wandergis on 2015/7/8. * 提供了百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换 *///定义一些常量var x_PI = 3.1415926535897932...

HAVENT ⋅ 32分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部