Upload
tomofusa-kawakami
View
1.823
Download
2
Embed Size (px)
Citation preview
© Drecom Co.,Ltd. All rights Reserved© Drecom Co.,Ltd. All rights Reserved
Redis & Resque
株式会社ドリコム
川上知成
© Drecom Co.,Ltd. All rights Reserved
自己紹介
• 所属 株式会社ドリコム
– @tomofusa
– 社内呼称:カリスマ(期間限定)
• やってること
– 現在:ソーシャルゲーム開発・運用
– 以前:広告配信サービス解析・最適化(rubyとかhadoopとかjavaとか)
© Drecom Co.,Ltd. All rights Reserved
最近
© Drecom Co.,Ltd. All rights Reserved
とあるRailsDevConfで
© Drecom Co.,Ltd. All rights Reserved
頭バーン ってなってたひと@onk
© Drecom Co.,Ltd. All rights Reserved
を発表
© Drecom Co.,Ltd. All rights Reserved
KVSとしてRedisを利用
© Drecom Co.,Ltd. All rights Reserved
TLをみて注目度高い!?
© Drecom Co.,Ltd. All rights Reserved
Redis&Resqueについて
© Drecom Co.,Ltd. All rights Reserved
ところで、atndをみてみると!?
© Drecom Co.,Ltd. All rights Reserved
© Drecom Co.,Ltd. All rights Reserved
© Drecom Co.,Ltd. All rights Reserved
© Drecom Co.,Ltd. All rights Reserved
© Drecom Co.,Ltd. All rights Reserved
被った!(´(ェ)`)
© Drecom Co.,Ltd. All rights Reserved
Redis&Resqueについて
© Drecom Co.,Ltd. All rights Reserved
ソーシャルアプリ≒ブラウザゲーム
携帯・PC・SmartPhoneなど
© 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
© 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)
© 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.
© Drecom Co.,Ltd. All rights Reserved
Resqueについて
• Githubで利用されている
• Ruby on Railsで利用できるバックグラウンドでジョブシステム。
© Drecom Co.,Ltd. All rights Reserved
ソーシャルアプリでResqueを使う場面
• 非同期タスク。
– resonse 5秒を以内で
• 定期タスク
– daily ranking処理など
© Drecom Co.,Ltd. All rights Reserved
似たようなRails向けライブラリとの比較
name Storage Crontask Recent
Resque Redis Resque-
Scheduler
Active
Delayed_Job Mysql - Active
Backgroundrb Mysql Include Silent
© Drecom Co.,Ltd. All rights Reserved
似たようなRails向けライブラリとの比較
• Strage
– RDB <KVS
• Speed UP?!
• CronTaskSupport
+(0゚・∀・) + ワクテカ +
© Drecom Co.,Ltd. All rights Reserved
Resqueの特徴
• 個人的な説明
– redisのパワーを借りて、非同期処理を効率的に行うRailsライブラリ。
• 特徴
– Atomic
– 分散並列
– プライオリティ
© Drecom Co.,Ltd. All rights Reserved
Resque運用
• Resque-web
• Redis永続化
• Redis Replication
© Drecom Co.,Ltd. All rights Reserved
Resque運用
• Resque-web
• Redis永続化
• Redis Replication
© Drecom Co.,Ltd. All rights Reserved
© Drecom Co.,Ltd. All rights Reserved
Resque-web
• Queueの処理状況
– 失敗していればRetry
• Workerの状態
• 貯まったQueue
– 大変高速に処理していく様子を観察!(・∀・)イイ!!
• Redis Status
© Drecom Co.,Ltd. All rights Reserved
Resque運用
• Resque-web
• Redis永続化
• Redis Replication
© Drecom Co.,Ltd. All rights Reserved
Redis永続化
• 永続化により、メンテナンス性・耐障害性UP
一方で。
© Drecom Co.,Ltd. All rights Reserved
Redis永続化
• メモリデータ永続化のコストが高い。
– デフォルトconfでは、定期的にKey数をチェックして保存。
⇒Key更新数が多すぎ⇒永続化タスク中に永続化⇒OOMKiller発動!
– 永続化タスクの強制実行&confの最適化。
• >redis-cliBGSAVE
– swfキャッシュにも利用。コスト高の要因orz
© Drecom Co.,Ltd. All rights Reserved
Resque運用
• Resque-web
• Redis永続化
• Redis Replication
© Drecom Co.,Ltd. All rights Reserved
Redis Replication
• Redis master - slave構成が可能。
– 障害発生時のデータ保護。
• オンザフライでmaster slave化が可能。• >redis-clislaveof<host><port>
• >redis-clislaveof NO ONE
© Drecom Co.,Ltd. All rights Reserved
Redis & Resque
• まとめ
– Queuing Systemとして及第点。
– Redis 2.0.4以降の利用を公式でも推奨
– ResqueはRedisのパフォーマンスに依存。
• 現時点では、sharding実装がないため、アプリ側でshardingするなどが必要。
© Drecom Co.,Ltd. All rights Reserved
Redisの今後
• Redisクライアントは各言語で存在。(php,C,python.etc…)
• Redis-cluster
– InstanceをDataNode化、耐障害性、node追加・削除。
– 設計完了。現在開発中・・・
© Drecom Co.,Ltd. All rights Reserved
ご清聴ありがとうございました。