WebPayはRailsを利用して構築しています。 今回はRailsアプリケーションでちょっと手間取る検索の高速化のTipsを紹介します。 最近のRailsアプリケーションでは、整合性が要求される基本的なデータにRDBMSを、揮発性の高いデータに高速なNoSQLを利用するパターンが一般的です。 WebPayではMySQLとRedisでこのような構成をとっています。 Redisは使い勝手がよく、高速で、データをディスクに保持することができるので、KVS系のNoSQL製品のなかでは一番汎用的に利用できる印象があります。 さて、Railsではserializeを指定して変化しがちなデータ形式をJSON等のシリアライズ形式でRDBにストアすることがあります。 メタデータなど、雑多な入力が予期されるデータには非常に便利ですが、シリアライズされたフィールドを検索しにくいという欠点があります。 Post
2014/10/28更新 : プライマリノードの切り替えについて追記しました。 ども、大瀧です。 本日、AWSのキャッシュサーバー as a ServiceのElastiCache(Redis)にMulti-AZ機能がリリースされました。早速試してみたので、レポートしてます! Multi-AZ機能とは Multi-AZ機能とは、Amazon RDSで提供されている、AWSのデータセンターであるアベイラビリティゾーン(AZ)レベルの障害に対応する可用性機能です。 ElastiCache(Redis)では、従来から複数AZへのキャッシュノードの配置とノード間レプリケーションがサポートされていましたが、プライマリーノードのフェイルオーバーが手動でした。キャッシュノードの障害検知とプライマリーノードの自動フェイルオーバーが今回のアップデートで追加されたと考えると良いでしょう。 RDSのMulti-
たまにはPowerShell 以外の記事を。 某記事でもRedis (REmote DIctionary Server)が memcached に代わり得る利点がBookSleeveを交えて丁寧に説明されました。 そして、Redisの運用が一定の目途を見せていることから、その初期設定に欠かせないチューニングについて記事にしてみようと思います。 全部明かすわけではありませんが、なかなかRedisに関する記事は少ないので、少し参考になれば幸いです。 経験上、高負荷環境ではRedisはチューニングで大幅に安定性が変わります。 インストール? 沢山記事ありますし、簡単なのでここでは省きます。 どうしても!な場合は希望していただければ記事にしますが。 Redis Quick Start 対象バージョン 2.6系とします。 2.4系でも大方一緒ですが、2.6系に特有な部分があるので、注意です。 対象O
矢口です。 みなさんはLinuxのtcという機能をご存知でしょうか。送信するパケットの帯域制御を行うことができる大変強力な機能で、グリーでもいくつかの用途で使用されています。 具体的な事例の一つはRedisです。Redisではreplicationを新規に開始する際やfailoverが発生しmasterが切り替わった際(特に2.6系)にストアされている全データが転送されます。しかし帯域制限をかける機能がないため、ネットワーク帯域を圧迫してしまう危険性があります。また通常のクライアントとの通信でも大量のクエリにより予想以上の帯域を使用してしまう可能性があります。このような場合にtcを用いることでRedisの使用する帯域をコントロールできます。 このように有用なtcですが残念なことに日本語/英語ともにわかりやすい解説や詳細な情報は多くありません。 私も社内において使われていたtcの設定に問題が
https://www.youtube.com/watch?v=rP9EKvWt0zo 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 TwitterのYao Yuが、大規模サービスのキャッシュにおいてRedisを活用する取組みについて紹介しています。 1) Redisを採用している理由 キャッシュだけで、ストレージとしては利用していない。 主なところでは、Twitterのタイムラインで利用している。ホーム画面であれ、ユーザ画面であれ、タイムラインはTweetのインデックスなので、key/valueストア型のRedisを利用するケースとして最適。 以前はmemcachedを使っていたが、問題になったのは、タイムラインでおきるread/writeは、(ユーザが閲覧している範囲に追加反映するということなの
クイックスタート¶ このクイックスタートを読めば5分でRedisの使い始め方がわかります。さらにRedisを知りたい方はRedisのドキュメントの見出しを確認してください。
2015/10/03 phpcon 2015 updated at 2016/01/13 about default_password_lifetime's default will be 0
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の索
Socket.IO 1.0がリリースアウトされました。Socket.IO v1.0が出るといわれてから一年半以上経過しましたが、やっと出ました。Node.jsに関わる方であれば一度はお世話になっていると思います。今回はSocket.IO 1.0の紹介を作者であるGuillermo Rauchがしているので、それを日本語で翻訳して紹介します。 TL;DR 翻訳していたらすごく面白かったのですが、文字だらけですごく長くなってしまったので、最初と最後にまとめを載せました。興味があれば全部目を通してみてください。 モジュール分割が進み、新しくEngine.IOが作られています。これはSocket.IOのトランスポート層のプロトコルを調律する役割を担っているライブラリです。 Engine.IOが行っている処理の一つで、最初に接続できる可能性が高いXHRやJSONPで確立し、websocketにupg
GoogleのSVP、Urs Hoelzleが「いま世界でもっとも人気のあるスマートフォンアプリ」と評し、Facebookによる3000億円の買収提案をスルーしたとされるSnapchat。その共同設立者でCTOのBobby Murphyが、3/25に開催されたGoogle Cloud Platform Liveに登場し、“Snapchatを支える技術”としてのGoogle Cloud Platform (GCP)の使い所や開発体制をかなり具体的に説明していたので、補足と解説を交えながらざっと意訳してみた。 SnapchatのCTO, Bobby Murphyと、GoogleのSVP, Urs Hoelzle From Google Cloud Platform Live SnapchatがGoogle App Engineを選んだ理由 "それまでいくつかの小さなプロジェクトでGoogle
はじめに セッション管理が必要なWebアプリケーションサーバをロードバランシングやクラスタリングなどで負荷分散構成とした場合、セッション情報をデータベースに保持し共有化する方法が一般的です。しかしAWSのインフラストラクチャ障害などでAZが丸ごとダウンするようなケースを考慮した場合、Webアプリケーションサーバと共に、セッション管理DBも複数のAZに分散配置するのが望ましいでしょう。 ではAWSでセッション管理DBを複数のAZに分散配置する場合、どのような手段が考えられるのでしょうか。というのが今回のスタート地点です。 1.AZ分散配置しない いきなり前提を覆すような話をしますが、そもそもAZ分散配置が必要なケースは、AZが丸ごとダウンしセッション管理DBが使えなくなることがサービス停止に直結する場合です。 つまりアプリケーションが「セッション管理DBに接続出来ない場合はローカルのDBやフ
バックエンドエンジニアの吉田です。 フォローしている人のLikeしたもの iQONにはフォローしている人の「Likeしたアイテム」や「Likeしたコーデ」などの活動が見られる画面があります。 ここでは、フォローしている人の活動が最近のものから表示しています。 今回この機能をRedisを使ったしくみに作り変えたのでその事例とRedisの内部的なお話をしたいと思います。 内容はこんな感じです。 Redis SortedSet ZINTERSTOREによる共通項の取得 フォローしている人を、Likeした順に絞り込む ZINTERSTOREのキー指定順は計算コストに影響するか Redis SortedSet Set内のValueがそのスコアを保持できるもので、保存したSetをスコアの昇順か降順で取得することができるデータ構造になっています。 何らかのランキングや時系列情報などに使われるデータ
Add your Ruby gems to AWS CodeArtifact Ruby developers can now use AWS CodeArtifact to securely store and retrieve their gems. CodeArtifact integrates with standard developer tools like gem and bundler. Applications often use numerous packages to speed up development by providing reusable code for common tasks like network access, cryptography, or data manipulation. Developers also embed SDKs–such
expressでユーザのセッションを引き継いでページ遷移させたいっていうのが結構あります。 その場合、よくRedisというキーバリューストア(KVS)モデルのデータベースが用いられるようです。 これまでのWebアプリケーションがMySQL + memcachedで構成されていたことを考えると node.jsはMongoDB + Redisで構成されることがスタンダードになっていくのでしょうか。 さて、そのRedisのインストールは本家ページ(Redis)からwgetして解凍します。 $ wget http://redis.googlecode.com/files/redis-2.4.6.tar.gz $ tar xzf redis-2.4.6.tar.gz $ cd redis-2.4.6 $ makeサーバの立ち上げは $ src/redis-serverで行います。 そのあとは例によっ
やりたいこと Redisをセッションデータの保存先にしたい Beakerって? 様々なデータストアにセッションデータを保存するWSGI Middleware。WSGIレイヤーなのでFlask以外のWAF(bottleとか)でも使えるはず。 必要なもの Python 2.6+ (自分はPython 3.3.4で動かしてる) Flask Beaker beaker_extensions - beakerだけだとRedisには対応してないためこれが必要 redis-py Redis サンプルコード gist9811874 動かす $ pip install beaker flask redis git+git://github.com/bbangert/beaker_extensions.git $ python beaker_sample.py http://localhost:5000/ に
最近必要に迫られて、ようやくRedisをインストールして触ってみました。(Redis童貞からの脱却) 色々と、基本部分ではあるけど、せっかく実際に触りながら勉強したので、このエントリにメモしておこうと思います。 尚、使ってみたRedisのバージョンは、stableの最新版である2.8.7です。(OSは、LinuxのCentOS 6.5) ちなみに、このエントリに書いていないような、Redisの基本的なアレコレについては、WEB+DB Press Vol.73のRedis特集(2.6向けではありますが)にほとんど書いてあるので読むべし。 WEB+DB PRESS Vol.73 作者: 設樂洋爾,白土慧,はまちや2,大和田純,松田明,後藤大輔,ひろせまさあき,小林篤,近藤宇智朗,まかまか般若波羅蜜,Mr. O,川添貴生,重国和宏,柳澤建太郎,奥野幹也,佐藤鉄平,後藤秀宣,mala,中島聡,堤智
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く