37
© Drecom Co.,Ltd. All rights Reserved © Drecom Co.,Ltd. All rights Reserved Redis & Resque 株式会社ドリコム 川上知成

第3回クラウド勉強会 Redis&resque

Embed Size (px)

Citation preview

Page 1: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved© Drecom Co.,Ltd. All rights Reserved

Redis & Resque

株式会社ドリコム

川上知成

Page 2: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

自己紹介

• 所属 株式会社ドリコム

– @tomofusa

– 社内呼称:カリスマ(期間限定)

• やってること

– 現在:ソーシャルゲーム開発・運用

– 以前:広告配信サービス解析・最適化(rubyとかhadoopとかjavaとか)

Page 3: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

最近

Page 4: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

とあるRailsDevConfで

Page 5: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

頭バーン ってなってたひと@onk

Page 6: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

を発表

Page 7: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

KVSとしてRedisを利用

Page 8: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

TLをみて注目度高い!?

Page 9: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

Redis&Resqueについて

Page 10: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

ところで、atndをみてみると!?

Page 11: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

Page 12: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

Page 13: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

Page 14: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

Page 15: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

被った!(´(ェ)`)

Page 16: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

Redis&Resqueについて

Page 17: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

ソーシャルアプリ≒ブラウザゲーム

携帯・PC・SmartPhoneなど

Page 18: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

システム構成

• mysql 5.1.x

• redis1.2.6(2.0.4)

• ruby1.8.7

• rails3.0.0.beta4

• unicorn 3.0.0

• nginx 0.6.32

Page 19: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

gem

• redis (2.1.1)

• redis-namespace (0.8.0)

• resque (1.9.5)

• resque-scheduler (1.9.2)

Page 20: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

Redisについて

• 念のため簡単な説明

• cで実装された memcacheライクなKVS。ただし、メモリ上のデータを永続化

– 永続性

– データリスト,セット

– アトミックな操作

– はやい <Redis is pretty fast!, >

• 110,000 SETs/sec, 81,000 GETs/sec in an entry

level Linux box.

Page 21: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

Resqueについて

• Githubで利用されている

• Ruby on Railsで利用できるバックグラウンドでジョブシステム。

Page 22: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

ソーシャルアプリでResqueを使う場面

• 非同期タスク。

– resonse 5秒を以内で

• 定期タスク

– daily ranking処理など

Page 23: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

似たようなRails向けライブラリとの比較

name Storage Crontask Recent

Resque Redis Resque-

Scheduler

Active

Delayed_Job Mysql - Active

Backgroundrb Mysql Include Silent

Page 24: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

似たようなRails向けライブラリとの比較

• Strage

– RDB <KVS

• Speed UP?!

• CronTaskSupport

+(0゚・∀・) + ワクテカ +

Page 25: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

Resqueの特徴

• 個人的な説明

– redisのパワーを借りて、非同期処理を効率的に行うRailsライブラリ。

• 特徴

– Atomic

– 分散並列

– プライオリティ

Page 26: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

Resque運用

• Resque-web

• Redis永続化

• Redis Replication

Page 27: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

Resque運用

• Resque-web

• Redis永続化

• Redis Replication

Page 28: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

Page 29: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

Resque-web

• Queueの処理状況

– 失敗していればRetry

• Workerの状態

• 貯まったQueue

– 大変高速に処理していく様子を観察!(・∀・)イイ!!

• Redis Status

Page 30: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

Resque運用

• Resque-web

• Redis永続化

• Redis Replication

Page 31: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

Redis永続化

• 永続化により、メンテナンス性・耐障害性UP

一方で。

Page 32: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

Redis永続化

• メモリデータ永続化のコストが高い。

– デフォルトconfでは、定期的にKey数をチェックして保存。

⇒Key更新数が多すぎ⇒永続化タスク中に永続化⇒OOMKiller発動!

– 永続化タスクの強制実行&confの最適化。

• >redis-cliBGSAVE

– swfキャッシュにも利用。コスト高の要因orz

Page 33: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

Resque運用

• Resque-web

• Redis永続化

• Redis Replication

Page 34: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

Redis Replication

• Redis master - slave構成が可能。

– 障害発生時のデータ保護。

• オンザフライでmaster slave化が可能。• >redis-clislaveof<host><port>

• >redis-clislaveof NO ONE

Page 35: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

Redis & Resque

• まとめ

– Queuing Systemとして及第点。

– Redis 2.0.4以降の利用を公式でも推奨

– ResqueはRedisのパフォーマンスに依存。

• 現時点では、sharding実装がないため、アプリ側でshardingするなどが必要。

Page 36: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

Redisの今後

• Redisクライアントは各言語で存在。(php,C,python.etc…)

• Redis-cluster

– InstanceをDataNode化、耐障害性、node追加・削除。

– 設計完了。現在開発中・・・

Page 37: 第3回クラウド勉強会 Redis&resque

© Drecom Co.,Ltd. All rights Reserved

ご清聴ありがとうございました。