Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MiyazakiResistanceを作ってみたよ
Search
Tsukasa OISHI
July 17, 2009
Programming
0
890
MiyazakiResistanceを作ってみたよ
Tsukasa OISHI
July 17, 2009
Tweet
Share
More Decks by Tsukasa OISHI
See All by Tsukasa OISHI
怖くないメモリ肥大化
tsukasa_oishi
1
52
SLI/SLO をストリーム アラインドチームに導入した話
tsukasa_oishi
0
150
JITをたどるとそこはYARVの中
tsukasa_oishi
0
550
The Cacher in the Rye
tsukasa_oishi
1
5.8k
ISeqで遊ぼう
tsukasa_oishi
0
5k
Rubyを30倍速くした話
tsukasa_oishi
0
1.1k
はてブ砲をくらったときのお話
tsukasa_oishi
0
1.9k
食べログで動いている自作ライブラリのお話
tsukasa_oishi
0
290
奥さんとプログラミングを両立させる方法
tsukasa_oishi
0
50
Other Decks in Programming
See All in Programming
ブラウザ単体でmp4書き出すまで - muddy-web - 2024-12
yue4u
2
460
20年もののレガシープロダクトに 0からPHPStanを入れるまで / phpcon2024
hirobe1999
0
440
あれやってみてー駆動から成長を加速させる / areyattemite-driven
nashiusagi
1
200
採用事例の少ないSvelteを選んだ理由と それを正解にするためにやっていること
oekazuma
2
1k
LLM Supervised Fine-tuningの理論と実践
datanalyticslabo
4
1.1k
今年のアップデートで振り返るCDKセキュリティのシフトレフト/2024-cdk-security-shift-left
tomoki10
0
200
ドメインイベント増えすぎ問題
h0r15h0
1
260
Beyond ORM
77web
4
480
Итераторы в Go 1.23: зачем они нужны, как использовать, и насколько они быстрые?
lamodatech
0
730
命名をリントする
chiroruxx
1
390
PHPで学ぶプログラミングの教訓 / Lessons in Programming Learned through PHP
nrslib
2
160
Scalaから始めるOpenFeature入門 / Scalaわいわい勉強会 #4
arthur1
1
310
Featured
See All Featured
Designing for Performance
lara
604
68k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Designing Experiences People Love
moore
138
23k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
Faster Mobile Websites
deanohume
305
30k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
510
Raft: Consensus for Rubyists
vanstee
137
6.7k
Writing Fast Ruby
sferik
628
61k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
A designer walks into a library…
pauljervisheath
204
24k
GitHub's CSS Performance
jonrohan
1030
460k
Transcript
Miyazaki Resistance を作ってみたよ I've developed MiyazakiResistance
おおいし つかさ Tsukasa OISHI
食べログ グルメサイト プログラマ Tabelog.com Review site of great restaurants Programmer
iPhoneアプリ ver2.0 が出ました I've released iPhone application of Tabelog ver
2.0
本題 Main
Miyazaki Resistance?
ActiveRecord のように Tokyo Tyrantを 使うことが できます Library like ActiveRecord to
use Tokyo Tyrant
Tokyo Tyrant?
Tokyo Cabinetと やりとりするための ネットワーク インターフェース The Package of network interface
to Tokyo Cabinet.
Tokyo Cabinet?
Key Value Strage
Table構造 【Key】 id 【Value】 article_id : integer count : integer
created_at : datetime
記事ID100の 昨日の アクセス数を 取得する Search access count of article-ID 100
yesterday.
Ruby API
TTとの接続 rdb = TokyoTyrant::RDBTBL.new rdb.open(“localhost”, 1975)
クエリの作成 query = TokyoTyrant::RDBQRY.new(rdb) query.addcond(“created_at”, TokyoTyrant::RDBQRY::QCNUMEQ, Time.local(2009, 7, 16).to_i) query.addcond(“article_id”,
TokyoTyrant::RDBQRY::QCNUMEQ, 100)
クエリの作成 query = TokyoTyrant::RDBQRY.new(rdb) query.addcond(“created_at”, TokyoTyrant::RDBQRY::QCNUMEQ, Time.local(2009, 7, 16).to_i) query.addcond(“article_id”,
TokyoTyrant::RDBQRY::QCNUMEQ, 100)
データの取得 article_100_count = query.search.first
メンドくさい... orz troublesomeness...orz
いいもの なのに もったいない! Mottainai!
Miyazaki Resistance!
ArticleCount.find( :first, :conditions => [“restaurant_id = ? created_at = ?”,
100, Time.local(2009, 7, 16) ) 簡単
ArticleCount class ArticleCount < MiyazakiResistance::Base set_server :localhost, 1975, :write set_column
:restaurant_id, :integer set_column :count, :integer set_column :created_at, :datetime end
Replication
set_server :master, 1975, :write set_server :slave1, 1975, :readonly set_server :slave2,
1975, :readonly
DualMaster
set_server :m1, 1975, :write set_server :m2, 1975, :standby
食べログでも 使っているよ ・各レストランのアクセスカウント ・デュアルマスタ構成 ・約1.8億PV
gem install tsukasaoishi- miyazakiresistance
おしまい thanks!