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,...
クエリの作成
query =
TokyoTyrant::RDBQRY.new(rdb)

query.addcond(“created_at”,
TokyoTyrant::RDBQRY::QCNUMEQ,
Time.local(2009, 7,...
データの取得


 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...
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!
Upcoming SlideShare
Loading in …5
×

Miyazaki Resistanceを作ってみたよ

4,292 views

Published on

RubyKaigi2009 Lightning Talk. MiyazakiResistance

Published in: Technology
  • Be the first to comment

Miyazaki Resistanceを作ってみたよ

  1. 1. Miyazaki Resistance を作ってみたよ I've developed MiyazakiResistance
  2. 2. おおいし つかさ Tsukasa OISHI
  3. 3. 食べログ グルメサイト プログラマ Tabelog.com Review site of great restaurants Programmer
  4. 4. iPhoneアプリ ver2.0 が出ました I've released iPhone application of Tabelog ver 2.0
  5. 5. 本題 Main
  6. 6. Miyazaki Resistance?
  7. 7. ActiveRecord のように Tokyo Tyrantを 使うことが できます Library like ActiveRecord to use Tokyo Tyrant
  8. 8. Tokyo Tyrant?
  9. 9. Tokyo Cabinetと やりとりするための ネットワーク インターフェース The Package of network interface to Tokyo Cabinet.
  10. 10. Tokyo Cabinet?
  11. 11. Key Value Strage
  12. 12. Table構造 【Key】 id 【Value】 article_id : integer count : integer created_at : datetime
  13. 13. 記事ID100の 昨日の アクセス数を 取得する Search access count of article-ID 100 yesterday.
  14. 14. Ruby API
  15. 15. TTとの接続 rdb = TokyoTyrant::RDBTBL.new rdb.open(“localhost”, 1975)
  16. 16. クエリの作成 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)
  17. 17. クエリの作成 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)
  18. 18. データの取得 article_100_count =    query.search.first
  19. 19. メンドくさい... orz troublesomeness...orz
  20. 20. いいもの なのに もったいない! Mottainai!
  21. 21. Miyazaki Resistance!
  22. 22. 簡単 ArticleCount.find( :first, :conditions => [“restaurant_id = ? created_at = ?”, 100, Time.local(2009, 7, 16) )
  23. 23. 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
  24. 24. Replication
  25. 25. set_server :master, 1975, :write set_server :slave1, 1975, :readonly set_server :slave2, 1975, :readonly
  26. 26. DualMaster
  27. 27. set_server :m1, 1975, :write set_server :m2, 1975, :standby
  28. 28. 食べログでも 使っているよ ・各レストランのアクセスカウント ・デュアルマスタ構成 ・約1.8億PV
  29. 29. gem install tsukasaoishi- miyazakiresistance
  30. 30. おしまい thanks!

×