Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
This repository was archived by the owner on Jul 14, 2022. It is now read-only.
/redis-ormPublic archive

write db yaml once, generate go orm code everywhere.

License

NotificationsYou must be signed in to change notification settings

ezbuy/redis-orm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go

redis-orm fly orm up

Important NOTE

redis-orm is not maintained anymore , try to use theezorm's mysqlr driver instead.

features

quick start

generate command

go get github.com/ezbuy/redis-ormredis-orm code -i example/yaml -o example/model

read access usage

import"github.com/ezbuy/redis-orm/example/model"// mysqlmodel.MySQLSetup(cf)db:=model.MySQL()// query (ids []string) by unique & index & range definitionsmodel.UserDBMgr(db).FindOne(unique)model.UserDBMgr(db).Find(index)model.UserDBMgr(db).Range(scope)model.UserDBMgr(db).RangeRevert(scope)// search usageblogs,err:=model.BlogDBMgr(db).Search("INNER JOIN users ON blog.user_id = users.user_id WHERE users.mail_box=?","","","foo@bar.com")// fetch objectmodel.UserDBMgr(db).Fetch(pkPrimaryKey) (*User,error)model.UserDBMgr(db).FetchByPrimaryKey(idint32) (*User,error)model.UserDBMgr(db).FetchByPrimaryKeys(ids []int32) ([]*User,error)// redismodel.RedisSetup(cf)redis:=model.Redis()// query (ids []string) by unique & index & range definitionsmodel.UserRedisMgr(redis).FindOne(unique)model.UserRedisMgr(redis).Find(index)model.UserRedisMgr(redis).Range(scope)model.UserRedisMgr(redis).RangeRevert(scope)// fetch objectmodel.UserRedisMgr(redis).Fetch(pkPrimaryKey) (*User,error)model.UserRedisMgr(redis).FetchByPrimaryKeys(pks []PrimaryKey) ([]*User,error)

write access usage

import"github.com/ezbuy/redis-orm/example/model"// mysqlmodel.MySQLSetup(cf)db:=model.MySQL()tx,err:=db.BeginTx()defertx.Close()model.UserDBMgr(tx).Save(obj)model.UserDBMgr(tx).Create(obj)model.UserDBMgr(tx).Update(obj)model.UserDBMgr(tx).Delete(obj)model.UserDBMgr(tx).FindOne(unique)model.UserDBMgr(tx).Find(index)model.UserDBMgr(tx).Range(scope)model.UserDBMgr(tx).RangeRevert(scope)model.UserDBMgr(tx).Fetch(idstring) (*User,error)model.UserDBMgr(tx).FetchByPrimaryKey(idint32) (*User,error)model.UserDBMgr(tx).FetchByPrimaryKeys(ids []int32) ([]*User,error)// redismodel.RedisSetup(cf)redis:=model.Redis()model.UserRedisMgr(redis).Save(obj)model.UserRedisMgr(redis).Create(obj)model.UserRedisMgr(redis).Update(obj)model.UserRedisMgr(redis).Delete(obj)

sync data

import"github.com/ezbuy/redis-orm/example/model"model.MySQLSetup(cf)model.RedisSetup(cf)db:=model.MySQL()redis:=model.Redis()model.UserRedisMgr(redis).Load(model.UserDBMgr(db))

bench redis vs mysql

enviroment:

mysql-server, redis-server, test client all in the same machine (mac air)

redis-orm.redis.bench

Ran 1000 samples:unique.runtime:  Fastest Time: 0.000s  Slowest Time: 0.001s  Average Time: 0.000s ± 0.000sindex.runtime:  Fastest Time: 0.000s  Slowest Time: 0.000s  Average Time: 0.000s ± 0.000srange.runtime:  Fastest Time: 0.000s  Slowest Time: 0.000s  Average Time: 0.000s ± 0.000srange.revert.runtime:  Fastest Time: 0.000s  Slowest Time: 0.000s  Average Time: 0.000s ± 0.000sfetch.runtime:  Fastest Time: 0.002s  Slowest Time: 0.004s  Average Time: 0.002s ± 0.000s

redis-orm.mysql.bench

Ran 1000 samples:unique.runtime:  Fastest Time: 0.002s  Slowest Time: 0.106s  Average Time: 0.003s ± 0.005sindex.runtime:  Fastest Time: 0.002s  Slowest Time: 0.106s  Average Time: 0.003s ± 0.005srange.runtime:  Fastest Time: 0.002s  Slowest Time: 0.105s  Average Time: 0.002s ± 0.005srange.revert.runtime:  Fastest Time: 0.002s  Slowest Time: 0.105s  Average Time: 0.002s ± 0.006sfetch.runtime:  Fastest Time: 0.004s  Slowest Time: 0.150s  Average Time: 0.006s ± 0.009s

[8]ページ先頭

©2009-2025 Movatter.jp