Your SlideShare is downloading. ×
2 12椛澤「tokyo tyrant」
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

2 12椛澤「tokyo tyrant」

432
views

Published on

TokyoTyrantについてだらだらとまとめました。

TokyoTyrantについてだらだらとまとめました。

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
432
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. TokyoTyrantについて 椛澤 嘉弘
  • 2. 今回のLT• TokyoTyrantの紹介• その素晴らしさ• 今回で何に使っているのか• 使っていて困ったことは何か
  • 3. TokyoTyrantってなに?• 不揮発性のKVSです。• MySQLのようなトランザクション処理、他 テーブルとの結合ができるRDBMSではな く、 分散処理に向いた速度を追求したNoSQLで す。どのくらい早いのかベンチマークhttp://gihyo.jp/dev/serial/01/various-
  • 4. TokyoTyrantというかNoSQLの特 徴• ベンチマークから分かるように、かなり 早い。• 特にデータの読み込みはかなり早いので、 ソーシャルゲームなどのフラグ管理に良 くつかわれる。• スケールアウトしやすい。(TTは無 理っぽいらしいですが)詳しくはhttp://www.atmarkit.co.jp/flinux/rensai/noSQL/ noSQL_01/01_1.html
  • 5. 今回はどんなことに使っているの か。• 現在のスタミナ、スタミナの最大値• 現在のマナ• 今どこのダンジョンにいるのか• 一番進んでいるダンジョンはどこか• ガチャが回せるかフラグ• ログイン処理• ダンジョンで消費するスタミナ• などなど
  • 6. 具体的な使い方1• KVSなので、少しだけ面白い使い方を します。(ex)スタミナの挿入・取得tt->put(“stmaina_”.$user_id,$stamina);tt->get(“stamina_”.$user_id);
  • 7. 具体的な使い方2• MySQLのようなテーブル型のDBならば $user_idを入力するだけで全ての情報を取 り出せるのですが、今回はテーブル型で はなく、KVS型でやっているので$user_idの前に、カラム名のように名前を付けることで適切 なデータの挿入・取得を行っています。詳しくは、tt_game.phpに関数をまとめてお いたので、暇な時に見てください。
  • 8. 今回使っていて困ったこと1• TokyoTyrantをphpから触るために Net_TokyoTyrantというPEARの提供するラ イブラリを使いました。• そのためTokyoTyrantの醍醐味ともいえる add()が使えない。(中身見ると実装され てなかったり)
  • 9. その対策1• add()を一番使いたかったのは、mana関係• Staminaなどは毎回取得して判定を行わな ければならなかったにも関わらず、mana は中身を気にせずインクリメントしてい きたかった。• Net_TokyoTyrantを変更する、PEARではな くPECLの提供するTTを使う。などあったの ですが、リクエストが1回増える程度な のでとりあえず放置しています。
  • 10. 今回使っていて困ったこと2• phpは動的に変数の型を決めるのですが、 Net_TokyoTyrantの中ではValueが強制的に String型に変更されているため、ガチャフ ラグに0と1を使おうとしていたのですが、 phpあるある的にstirng型の0や”0”などは全 てnullになっちゃうっていう怖さ。配列の 0,0,0は入るんだけど、 stirng型の0は入ら ないんですね。
  • 11. その対策2• Dungeonの情報については、どのダンジョンにどのフロアにどのルームにいるのかという情報があった ので、配列をJSONエンコードして、データを入れ ております。
  • 12. TokyoTyrantについて 椛澤 嘉弘文字ばっかりでさーせんした!