タグ

redisに関するtoritori0318のブックマーク (99)

  • TwilioのRedisによる決済サービスの障害、2つの原因 - unknownplace.org

    Twilio というサービスで決済サービスの障害があったらしいが、恐しいことにこのサービス、 決済情報をRedisで管理していたらしい、というのをRedis作者、antirez氏のblogで知った。 Twilio incident and Redis - Antirez weblog この件に関しては、Twilio自体も 調査報告 を出している。簡単にまとめるとこういう感じだ: TwilioではRedisを single-master, multi-slave なレプリケーション環境で使用している ネットワーク障害で一時的に master-slave 間の接続が切れたことにより、master-slave間のデータの再同期が発生 この再同期がすべてのslaveに対して同時に発生したため、masterの負荷が高くなり、結果決済サービスの障害が発生 この負荷を解決するためmasterを再起動する

  • Redis Sentinel で冗長構成を組む際の注意点 : DSAS開発者の部屋

    KVS界隈ではすっかりおなじみ(?)のRedisですが、当社でも徐々にそのニーズが高まってきました。 標準機能として、レプリケーション、Pub/Sub、ソート等の便利機能が満載のRedisですが、サービスに投入する際に冗長構成をどう組むかといった点が気になっている方もいるのではないでしょうか。 まだまだ検証中ではあるのですが、Redisに実装されているRedisSentinelを用いて冗長構成を組んだ際にハマった所をご紹介したいと思います。 RedisSentinelとは Redisに標準実装されている機能の一つで、Redisのステータス監視、通知、自動フェイルオーバーが行なえます。 詳細な仕様、設定に関しては以下のドキュメントをご確認下さい。 http://redis.io/topics/sentinel RedisSentinel導入前の構成 特に何の変哲も無い構成です。 Redisサ

    Redis Sentinel で冗長構成を組む際の注意点 : DSAS開発者の部屋
  • Jepsen: PostgreSQL, Redis, MongDB および Riak の分割耐性をテストする

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Jepsen: PostgreSQL, Redis, MongDB および Riak の分割耐性をテストする
  • RedisのLuaで時間のかかる処理をするとどうなるか? - (ひ)メモ

    Redis は基的にシングルスレッド、イベントドリブンモデルなので、時間のかかるLua スクリプトを実行したらどうなるかというのは想像に難くないのですが確認してみました。 Redis は 2.6.14 です。 redis-cli eval 'while true do print("hello") end' 0な感じのを実行します。 実行中に、別クライアントから GET, INFO, PING すると全てブロックされて結果が返ってきません。 redis.conf で lua-time-limit 5000 と設定している場合は、5秒後に redis-server のログに [18068] 22 Jul 13:51:23.798 # Lua slow script detected: still in execution after 5000 milliseconds. You can t

    RedisのLuaで時間のかかる処理をするとどうなるか? - (ひ)メモ
    toritori0318
    toritori0318 2013/07/23
    mjsk
  • Redisの監視/分析系ツールまとめ « Rest Term

    Redis関連の監視/データ分析系ツールについてメモしておきます。 随時追記予定。実務で有用なツールが他にありましたら教えていただけると嬉しいです。 環境 CentOS 5.9, Ubuntu 12.04 (x86_64) Redis 2.6.10 (※ CentOSの6.x系への移行は足踏み状態。相当大変ですよね。。) 以下の順に紹介していきます。 Redisコマンド Redis Sentinel Redis Live Redis Faina Redis Sampler redis-top Nagiosプラグイン Zabbixテンプレート Muninプラグイン Cactiプラグイン 最後のCactiプラグイン以外は実際に導入して試してみました。以降、見出しに各プロダクトへのリンクを貼っておきます。 Redisコマンド ツール紹介の前にまずは基から。Redisには監視やデータ解析用途で使

    Redisの監視/分析系ツールまとめ « Rest Term
  • Introducing DisRedis: an open source client to automate sharding & failover | Engineering @ CustomMade

    Disredis is a Redis client implementation which can be used to automatically handle sharding and fail-over for a Redis store through Sentinels.Note from Jim: At CustomMade we are big fans of open source. Today, we are releasing our first open source repo for use by others. Feedback, forking and contributions are welcome.   The reason we created DisRedis (“distributed redis”) While looking at optio

  • 【進撃の巨大データ】自作ApacheModuleとRedisでWebBrowserを一つ残らずUnique管理する - Y's note

    BrowserID管理の必要性 BehaviorTargeting調査レポート - Yuta.Kikuchiの日記 進撃の巨人とADTechnologyの面白さを最近の楽しみとしている@yutakikuchi_です。BigDataという言葉が大変流行っていますが、巨大な力を持つ大量のユーザーアクセスとそれから生まれるログ、その処理と分析に追われるエンジニア/データサイエンティストはまさに進撃の巨人と人間の闘いのようです(笑)この記事のタイトルは進撃の巨人でエレンが言った「巨人を一匹残らず駆逐してやる」を文字っています。今日はそんな巨大データを扱うADTechnology分野のUserTrackingに欠かせないBrowser識別子とUnique管理について触れたいと思います。ADTechの面白さを少し話しておくと検索やKVS等の最新技術だけでなく機械学習や統計のアカデミック領域の知識も必要

    【進撃の巨大データ】自作ApacheModuleとRedisでWebBrowserを一つ残らずUnique管理する - Y's note
  • Redis各種コマンドの有効バージョン一覧 - BTT's blog

    Redisの各種コマンドの使用可能バージョン一覧。 (※2012/12/30時点でのRedis最新バージョンは2.6.7) コマンド一覧) Command reference – Redis string コマンド 有効バージョン リンク APPEND 2.0.0. ※ BITCOUNT 2.6.0. ※ BITOP 2.6.0. ※ DECR 1.0.0. ※ DECRBY 1.0.0. ※ GET 1.0.0. ※ GETBIT 2.2.0. ※ GETRANGE 2.4.0. ※ GETSET 1.0.0. ※ INCR 1.0.0. ※ INCRBY 1.0.0. ※ INCRBYFLOAT 2.6.0. ※ MGET 1.0.0. ※ MSET 1.0.1. ※ MSETNX 1.0.1. ※ PSETEX 2.6.0. ※ SET 1.0.0. ※ SETBIT 2.2.0.

    Redis各種コマンドの有効バージョン一覧 - BTT's blog
  • Scaling Crashlytics: Building Analytics on Redis 2.6

    OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...Christopher Frohoff

    Scaling Crashlytics: Building Analytics on Redis 2.6
  • Redisを使ったレコメンド機能の実装 - maaash.jp

    それRedisでできるよ、期でしょうか。 最近Redisでレコメンド機能をつくってみたのでご紹介です。 ここで”レコメンド機能”というのは、 Amazonでいう”この商品を見たお客様はこれも見ています”や、ブログの関連記事を出す機能のこと。 user:1がproduct:Aをみたときに、product:Aに似ているproduct:Bをレコメンドしたい。 product:Aとproduct:Bがどれくらい似ているか:類似度 を算出した後は、 Redis得意のSorted Setを使って類似度のランキングをつくれば 似ているproductを出すことができます。 類似度の算出にはいろいろ方法があるようですが、 Redisのデータ構造と相性のよい Jaccard [wikipedia]という方法を使いました。 この例に適用すれば、 product:Aを見たユーザー群(RedisのSet)と、pro

  • Redisを使ったランキング機能の実装

    2013/05/29 DevLOVEさんイベント

    Redisを使ったランキング機能の実装
    toritori0318
    toritori0318 2013/05/31
    読みやすいスライドだなー
  • redisのmaster-slave構成で考えるべきことの話 - diary

    結論 Redisは2.6を使おう master-slave構成を取る場合はclient-output-buffer-limitをちゃんと意識するべき 概要 redisはエッジトリガ型のnon-blocking I/Oを用いてシングルスレッドでソケットの読み書きをぶん回す構造で書かれています。 よってclientやslaveへ対してのreplyを行う際も、ソケット自体の送信バッファが溢れた際(EAGAINが帰った際)には一度イベントループに処理を戻し、またソケットが書き込み可能になってイベントループが自分を呼んでくれた時に続きをwriteします。 まあnon-blocking I/Oなんだから当たり前なんですが、送信処理を再入可能にするためにredisはアプリケーションレベルで出力バッファを持っています。 これは送信が終わり次第適宜解放されるものの、write自体が間に合わなくなると詰まって

    redisのmaster-slave構成で考えるべきことの話 - diary
  • Redisでランキング機能を実装してみる - (゚∀゚)o彡 sasata299's blog

    2013年04月24日13:26 NoSQL Ruby Redisでランキング機能を実装してみる Redis を触ってると楽しくてニヤニヤしてしまう今日この頃です、こんにちは。 読み書きのパフォーマンス的には memcached とよく似てる感じかなーと思いますが、データが消えない(永続化)、さまざまなデータ型を持っていて用途によって使い分けられる、データ操作がアトミック、など、Redis には魅力的な特徴があります。 今回は Redis を使ってちょっとしたランキング機能を実装してみる話でも書いてみます。 Redisの環境準備 まずは Redis をインストールします。Mac だったら homebrew を使うと良いでしょう。 $ brew update $ brew install redis Redis の起動自体は非常に簡単で、このコマンドを実行するだけです。 redis-serv

  • Redis Sentinelを運用してみたお話 | GMOメディア エンジニアブログ

    こんにちは、宇津井です。 弊社ではゲソてんというゲームプラットフォームを運営しております。ゲソてんではサービスリリース当初から主にキャッシュ的な役割でRedisを導入していました。つい先日の事ですが訳あってRedis 2.6からサポートされたRedis Sentinelを採用しました。今回は、採用に至った経緯をご紹介します。 簡単なシステム構成 パフォーマンスは良いし、Memcachedには無い便利な機能を提供するRedisですが約一年間運用していくつかの問題が出てきました。 Redisサーバーが突然高負荷に陥るするとWebサーバーも高負荷に陥るRedisのReplicationは張ってるけどアプリケーション側でRedis Slaveへフェイルオーバーしない(MySQLを直接参照する)Redis落ちると恐らくMySQLサーバーが耐えられない(落ちた事無いけど)という事で対策を行ってきました

  • redis-topの導入

    redis-top Perl勉強メモ アルパカDiary出張版のtoritori0318さんが、Redisの使用状況をtopコマンドのように常時出力するredis-topというツールを作ってくださっていました。私のブログでもKVS(Key Value Store)はRedis2.6を使っています。Redisの使用状況はmuninとZabbixで監視していますが、若干時差があるので、リアルタイムにRedisの状況を調べるのに便利かなと思って、自分のブログにも導入してみました。toritori0318さん、ありがとうございます。 redis-topの導入方法 GitHubのp5-App-RedisTopのREADMEにもざっくり書かれてありますが、まずgit cloneでソースをダウンロードします。 git clone https://github.com/toritori0318/p5-Ap

    redis-topの導入
    toritori0318
    toritori0318 2013/04/08
    おお、ご紹介頂きましてありがとうございます!
  • Redis Sentinelが動いていたらslaveof no oneしない · さよならインターネット

    March 20, 2013 色々とあれだったのでシンプルにキメうちにしました thanks: @sawanoboly update: 2013/03/22 環境 Redis version 2.6.7 Redis Sentinelは Monitoring 、 Notification 、Automatic failover の3つの機能があって、主に自動フェイルオーバ目的で利用する機会が多いと思うのですが その際に、手動でslaveof no oneを打っちゃうことで予期しない状態になるので slaveof no one打つならRedis Sentinelを止めてからにしましょう。 事前情報 こんな感じでredis-sentinel.confが設定されているとします 構成: Master:1 <=> Slave:1 sentinel monitor check_one 192.168.2

  • WebSocket アプリの負荷分散 : DSAS開発者の部屋

    最近 SPDY と WebSocket がアツいですね。 再来週の SPDY & WS 勉強会 も、定員100名に対して 参加者が 247 名とかなりアツいことになっています。 その予習というわけでもないですが、最近 WebSocket を実サービスへの 導入方法を考えながら遊んでいたので、 WebSocket の負荷分散方法について 考えていることを書いておこうと思います。 ステートフルな WebSocket アプリケーション HTTP サービスは基的にステートレスな実装になっており、リクエストが来るたびに DBサーバーや memcached などのバックエンドから情報を取得して返していました。 この構成では Web アプリ自体は完全にステートレス化することができているので、 負荷分散機はラウンドロビン等のアプリケーションを無視した負荷分散をすることができました。 しかし、 WebSo

    WebSocket アプリの負荷分散 : DSAS開発者の部屋
  • redis-top というCLIを書いた - Perl勉強メモ アルパカDiary出張版

    追記2013/03/11 2.6対応と差分表示対応いただきました! @hirose31++ @fujiwara++ とある日 探してみたけどたしかにそれっぽいの無さそうだし 自分も欲しいし書くしか無い!!!! というわけで書きました。 https://github.com/toritori0318/p5-App-RedisTop 使い方 help引けば大体わかると思いますが、いくつか説明します。 その1 127.0.0.1:6379 のRedis情報を表示します。デフォルトだと3秒更新です。 redis-top その2 複数インスタンスを同時に表示することも可能です。 redis-top -i 127.0.0.1:6379,127.0.0.1:6380,127.0.0.1:6381,127.0.0.1:6382 いくつか頑張ってみた点 依存を気にした cpanとか使わなくても、1ファイルを

    redis-top というCLIを書いた - Perl勉強メモ アルパカDiary出張版
    toritori0318
    toritori0318 2013/03/12
    2.6対応と差分表示対応いただきました! @hirose31++ @fujiwara++
  • Redis の SortedSets 同点問題について - blog.nekokak.org

    WEB+DBのRedis特集をひろせまさあきさんと共同で執筆しました。 WEB+DB PRESS Vol.73posted with amazlet at 13.03.05設樂 洋爾 白土 慧 奥野 幹也 佐藤 鉄平 後藤 秀宣 mala 中島 聡 堤 智代 森田 創 A-Listers はまちや2 大和田 純 松田 明 後藤 大輔 ひろせ まさあき 小林 篤 近藤 宇智朗 まかまか般若波羅蜜 Mr. O 技術評論社 売り上げランキング: 335 Amazon.co.jpで詳細を見る 買ってください。 このRedis特集の第五章では、Redisを使ったリアルタイムランキングについて取り上げたのですが、 記事中にある同点問題について、執筆時から状況が変わりましたのでupdateします。 記事中では、RedisのSortedSetsはスキップリストというアルゴリズムを使っている特性上、 同じス

  • redisのバックアップは慎重に | Nekoya press

    皆様におかれましては、WEB+DB PRESSの最新号のRedis特集は既にご覧頂いたかと存じます。 弊社では1年ほど前から広告配信に関する様々な部分でRedisを使っています。まだ2.4系なので、2.6の新機能とか新鮮でした。 番環境でRedisを運用する上で、強く訴えたい注意点は「RDBが壊れることがある」ということです。 「RDBがあるからインスタンスが落ちても平気だぜ」とか思ってると、RDBが壊れてリストア失敗→データ消失ということになりかねません。ファイルにdumpされるからと安心していると痛い目に遭うかも知れません。 (2013/02/27追記)今のところ壊れたのはハード障害が怪しい場面のみです。「RDB壊れるとかRedis使えねー」とかそういう話ではまったくありません。誤解無きよう。壊れる時はRedisじゃなくても壊れます。自分のユースケースではTokyo Cabinet/