
「これ、同時にリクエスト飛んできた場合って、どうなるの?」 「2つ登録されちゃいますね…」 はじめに Web APIは、リクエストを受け、処理を終えた後レスポンスを返します。モバイルアプリやウェブアプリとセットで開発しているとつい忘れがちになってしまいますが、同時に同じリクエストが飛んできた場合にどういう挙動をするか ということは常に考慮しておかなくてはなりません。「UI上同時にリクエストが送れないから問題なし」では Web APIの設計が不十分です。別の端末から同時に同じリクエストを送ることも可能ですので、UIとは切り離して考えるべきです。 さて、この状況、GETリクエストについては大きな問題にはならないでしょう。いくらリクエストが来てもサーバ側の状態に変化はないので、負荷対策だけしておけば大丈夫そうです。問題はPUTリクエストやPOSTリクエストといった、サーバ側のリソースに変化を及ぼ
印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます NoSQL徹底研究の特集、第5回は「Redis」です。第1回でNoSQLを利用する企業が増えていると紹介しましたが、実際にはどのような企業がどのような理由でNoSQLを採用しているのでしょうか? ユースケースを軸に今回のテーマであるRedisを紹介します。 Redisとは Redisは、アクセスが高速なキーバリューモデルを採用するNoSQLです。非常に高速な読み書きとアクセスが可能で揮発型メモリキャッシュの「Memcached」とユースケースが似ており、永続化できるキャッシュとしても、今まで多く採用されています。 RDBMSでは面倒になりがちなケースを解決 多くのNoSQLが、一般的に文字列やJSONなどの構造情報を格納するのに対して、
ゴクロの大平です。ごくろうさまです。 Redisは高速で、かつデータの永続化や、複数のデータ型によるストア(list,set,sorted set等)も対応しており、機能的が豊富ということから愛用者の多いKVS実装の一つだと思います。 特に私のようなアプリケーションエンジニアの人間にとってはデータ型のバリエーションの豊富さが便利さを感じる部分で、たとえばlistを用いてタイムライン的な情報や履歴情報の管理、sorted setを用いてランキング情報の管理、などのようにアプリケーションの需要の多くにRedisが対応することができます。 これらの情報を登録する際のフローとしては自作のアプリケーションから直接、というケースが多いと思いますが、せっかくFluentdのような便利なlog collector実装があるので、FluentdとRedisを組み合わせる事でカジュアルに情報の蓄積を行いたい…
WebPayはRailsを利用して構築しています。 今回はRailsアプリケーションでちょっと手間取る検索の高速化のTipsを紹介します。 最近のRailsアプリケーションでは、整合性が要求される基本的なデータにRDBMSを、揮発性の高いデータに高速なNoSQLを利用するパターンが一般的です。 WebPayではMySQLとRedisでこのような構成をとっています。 Redisは使い勝手がよく、高速で、データをディスクに保持することができるので、KVS系のNoSQL製品のなかでは一番汎用的に利用できる印象があります。 さて、Railsではserializeを指定して変化しがちなデータ形式をJSON等のシリアライズ形式でRDBにストアすることがあります。 メタデータなど、雑多な入力が予期されるデータには非常に便利ですが、シリアライズされたフィールドを検索しにくいという欠点があります。 Post
CentOSにRedisをインストールしてみる の続き PHPでRedisを使ってみる。 前準備 ApacheとPHPが入ってなければインストールしておく。 $ sudo yum -y install httpd php 起動して、自動起動の設定もして、 $ sudo service httpd start $ sudo chkconfig httpd on パーミッションを変えておく。 $ sudo chown hoge:hoge /var/www/html/ phpredis PECLのredisのライブラリをインストールする。 $ sudo yum -y install php-pecl-redis --enablerepo=epel Apacheを再起動して反映。 $ sudo service httpd restart ライブラリの使い方は下記のページを見るのがよさそう。 nic
2. システム概要 homingは、アメーバピグ関連サービスのいずれかにログインしているユーザに対して、各サービスの通知情報を横断的にプッシュ通知します。 システムの構成は以下の通りです。 図2-1. システム概要 2-1. APIサーバ ユーザへの通知要求を受け付けるREST fullなAPIを備えたWebサーバです。 Node.jsのClusterによる、master/worker構成で稼働します。 通知要求はワーカプロセスで処理します。 図2-2. APIサーバ 2-2. Redisサーバ(データストア用) 一時的なデータをストアするためのRedisサーバです。 sentinelプロセスによる、master/slave構成で稼働します。 ストアされたデータはメモリ上のみで管理し、ディスクへの書き込みは行いません。 以下の情報を管理します。 ユーザのオンライン情報 ユーザIDの索
みなさまこんにちは。池内です。 Redis 3.0.0 から正式な機能として盛り込まれたRedis Clusterの構築と基本的な動作について紹介します。 ※ 期せずして本日 LINEさんの事例 LINEの100億超/日メッセージを支えるRedis・HBaseのスケールアウト・アップ戦略(A-5) #linedevday – Togetterまとめ が話題になっていますが、合計48TBものメモリサイズで運用しているようです。凄いですね。 Redis Cluster とは 疑似的なマルチマスタ構成 複数ノードでデータをシャーディングできる スレーブ構成を採用すれば耐障害性の向上も可能 概ね上記のような内容です。マルチマスタを「疑似的」としているのは、実際にデータが各ノードに伝播しているわけではないからです。Redis Clusterは、あるレコードをどのノードに保存するかを把握しておき、ノー
概要 Slack接続用のhubotをBluemix上で動かし、hubotのデータ保存先としてRedisを使ってみた手順を紹介します。 BluemixのRedisは実験的なリリースのようですが、2015年8月1日現在、無料で利用できます。 事前準備 以降の手順は、Node.js導入済みで、cfコマンドでBluemixにログイン済みの想定で記載しています。 それぞれの手順については以下のサイト等が参考になります。 IBM Bluemixへの登録 IBM developerWorks 日本語版 : IBM Bluemix CFコマンドのインストール CloudFoundry の cf コマンドラインツールをインストールする IBM Bluemixへのログイン Cloud Foundry V2系サービス(Cloudn PaaS, Bluemix)にRailsアプリをデプロイする Bluemixにh
antirez 3392 days ago. 540489 views. IMPORTANT EDIT: Redis 3.2 security improved by implementing protected mode. You can find the details about it here: https://www.reddit.com/r/redis/comments/3zv85m/new_security_feature_redis_protected_mode/ From time to time I get security reports about Redis. It’s good to get reports, but it’s odd that what I get is usually about things like Lua sandbox escapin
この記事は Perl5 Advent Calendar 2015 の7日目の記事です。昨日は、 @karupanerura さんの XSことはじめ でした。 今回は、RedisをPerlで扱う上での便利CPANモジュールを紹介します。大体 @shogo82148 無双になります。 Redis::Fast RedisクライアントはRedis::Fast一択です。Redis.pmが公式推奨のモジュールですが、これはPure Perl実装なのでパフォーマンスがそれほど良くありません。 Redis::FastはRedis.pm互換のインターフェースを持ったXSモジュールであり、内部的にはRedis公式のCクライアントであるhiredisのバインディングになっているので、安定していて使いやすいといえるでしょう。 my $redis = Redis::Fast->new; $redis->incr('
はじめに Developpers Summit 2016で「大規模Redisサーバ縮小化の戦い」というテーマで発表してきました。 大規模Redisサーバ縮小化の戦い from Yuto Komai Redisのdumpファイルを取得して、それらをマージする方法や、Redis内で使用するdb数を増やせば、接続数も増えていく、といった話をしました。 特にAWS上でRedisを運用する場合、ElastiCacheの接続数上限は変更できないことは見落としがちなポイントなので、サーバを何十台もスケールアウトする人たちにとって役に立つノウハウが共有できたのではないでしょうか。 当日はネタスライドを山程仕込んで 会場は大爆笑だったのですが、slideshareではネタスライドは割愛しております。 今回のお話 デブサミのスライドでは、ほとんどの話が縮小についての話だったので、今回はRedisの信頼性につい
こんにちは、宇津井です。 弊社ではゲソてんというゲームプラットフォームを運営しております。ゲソてんではサービスリリース当初から主にキャッシュ的な役割でRedisを導入していました。つい先日の事ですが訳あってRedis 2.6からサポートされたRedis Sentinelを採用しました。今回は、採用に至った経緯をご紹介します。 簡単なシステム構成 パフォーマンスは良いし、Memcachedには無い便利な機能を提供するRedisですが約一年間運用していくつかの問題が出てきました。 Redisサーバーが突然高負荷に陥るするとWebサーバーも高負荷に陥るRedisのReplicationは張ってるけどアプリケーション側でRedis Slaveへフェイルオーバーしない(MySQLを直接参照する)Redis落ちると恐らくMySQLサーバーが耐えられない(落ちた事無いけど)という事で対策を行ってきました
CTOの椎名アマドです。 今回は、Pairyのチャットデータを全てRedisからAmazon DynamoDBに移行した話をしたいと思います。 我々が 2012年6月に カップル専用アプリ Pairy をリリースした時には、 データベースは MySQL と Redis の両方を利用するところで始めました。 Redis の役割は: 1. MySQLレスポンスのキャッシュ 2. プッシュ通知等のキュー 3. チャットのデータを全保管 サービスローンチ直後はまだ Appサーバー(EC2)1台と、MySQL & Redisを両方走らせてる DBサーバー(EC2)1台で十分だという判断で、しばらくはそんな構成でやってました。(S3などは省略) しかし、いざサービスが成長してくるともちろん MySQL & Redis を1台でまかなうのはキツくなり、MySQL と Redis を別々のEC2インスタン
はじめに 突然ですが、みなさんはWindowsやWindows Serverに対してどのような印象をお持ちでしょうか? Linuxと比べて良い点や悪い点はあるのはなんとなくわかるものの、総合的に、Windowsに対してあまり良いイメージを持たれない方も多いのではないでしょうか。 私たちの会社では、GREE向けにリアルタイムギルドバトル[1]と呼ばれるジャンルのソーシャルゲームをAWS+Windows環境を使って提供しています。Web 業界全体を通しても珍しい、AWSかつWindowsという組み合わせの大規模Webアプリケーションをどのように提供し、継続的に運用しているのか、実際のところはどうなのか、といった点を今回は紹介したいと思います。 グラニが提供するソーシャルゲームの規模 実際に弊社で提供している「神獄のヴァルハラゲート」の規模感は次のようなものになります。 リアルタイムギルドバトル
2. システム概要 homingは、アメーバピグ関連サービスのいずれかにログインしているユーザに対して、各サービスの通知情報を横断的にプッシュ通知します。 システムの構成は以下の通りです。 図2-1. システム概要 2-1. APIサーバ ユーザへの通知要求を受け付けるREST fullなAPIを備えたWebサーバです。 Node.jsのClusterによる、master/worker構成で稼働します。 通知要求はワーカプロセスで処理します。 図2-2. APIサーバ 2-2. Redisサーバ(データストア用) 一時的なデータをストアするためのRedisサーバです。 sentinelプロセスによる、master/slave構成で稼働します。 ストアされたデータはメモリ上のみで管理し、ディスクへの書き込みは行いません。 以下の情報を管理します。 ユーザのオンライン情報 ユーザIDの索
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く