Miyazaki Resistanceを作ってみたよ
-
Upload
tsukasa-oishi -
Category
Technology
-
view
3.737 -
download
4
description
Transcript of Miyazaki Resistanceを作ってみたよ
MiyazakiResistanceを作ってみたよ
I've developed MiyazakiResistance
おおいしつかさ
Tsukasa OISHI
食べロググルメサイトプログラマ
Tabelog.comReview site of great restaurantsProgrammer
iPhoneアプリver2.0が出ました
I've releasediPhone applicationof Tabelog ver 2.0
本題Main
MiyazakiResistance?
ActiveRecordのようにTokyo Tyrantを使うことができます
Library like ActiveRecord to use Tokyo Tyrant
Tokyo Tyrant?
Tokyo Cabinetとやりとりするためのネットワークインターフェース
The Package of network interface to Tokyo Cabinet.
Tokyo Cabinet?
KeyValueStrage
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!
MiyazakiResistance!
ArticleCount.find( :first, :conditions => [“restaurant_id = ? created_at = ?”, 100, Time.local(2009, 7, 16))
簡単
ArticleCountclass 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, :writeset_server :slave1, 1975, :readonlyset_server :slave2, 1975, :readonly
DualMaster
set_server :m1, 1975, :writeset_server :m2, 1975, :standby
食べログでも使っているよ
・各レストランのアクセスカウント
・デュアルマスタ構成
・約1.8億PV
geminstalltsukasaoishi-miyazakiresistance
おしまいthanks!