タグ

redisに関するkoba04のブックマーク (16)

  • Flickr: Redis Sentinelの導入 - ワザノバ | wazanova

    http://code.flickr.net/2014/07/31/redis-sentinel-at-flickr/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 36分前 Flickrエンジニアブログで、Redisのマスター障害復旧を自動化するためにRedis Sentinelを導入した経験を紹介しています。 Redisのユースケース 番サービスに影響を与えないように、写真のアップロード / ユーザ通知 / メタデータの編集などの重たいタスクは、Redisのキューに送られて、非同期でオフライン処理されている。 クリティカルなタスクなので、99.9999%が処理(100万件のうち1件以下)され、99.995%の時間は稼働(月に停止が2分を超えない)させる必要がある。 もし、マスターが落ちると、復旧は手動対

  • Socket.IO, Redisを使用し各ゲーム間でプッシュ通知するシステム | 株式会社サイバーエージェント

    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のビットコマンドを用いた高速集計 - アルパカDiary Pro

    Redisは様々な型をもっているので 単純な集計(increment)は結構柔軟にできたりします。 ですが、後から条件付きでクロス集計したい時があると思います。 Redisにはビット演算するコマンドがあるので それを使っていろいろな集計をしてみました。 ビット関連コマンドリファレンス GETBIT/SETBIT Redis 2.2.0以降が必要。 ビットのオフセットに対してフラグを取得/設定します。 GETBIT key offset SETBIT key offset value(1/0) BITCOUNT Redis 2.6.0以降が必要。 キーに対するビットカウントを取得します。 BITCOUNT key [start] [end] BITOP Redis 2.6.0以降が必要。 複数のキーに対してビット操作を行うことが出来ます。 集計にはこの操作を使います。 BITOP opera

    Redisのビットコマンドを用いた高速集計 - アルパカDiary Pro
    koba04
    koba04 2014/04/28
  • Redis入門 インメモリKVSによる高速データ管理

    Redis入門 インメモリKVSによる高速データ管理 Josiah L. Carlson, 長尾高弘(訳) KADOKAWA/アスキー・メディアワークス 3,740円 (3,400円+税) RDBに代わる高速なデータ管理システムであるRedisについて、基礎から、リアルタイムデータの前処理、インメモリ・データセットの管理、pub/sub(パブリッシュ/サブスクライブ)と設定まで解説。 関連サイト書の関連ページが用意されています。 Redis入門Example code from the book内容紹介Redisとは「remote dictionary server」から名付けられたオープンソースのキーバリューストア(KVS)でNoSQLに分類されるものです。すべてのデータをメモリ上に保存するため処理が極めて高速です。VMwareがスポンサーに付き、Salvatore Sanfilipp

    Redis入門 インメモリKVSによる高速データ管理
    koba04
    koba04 2014/01/14
  • Redis勉強会資料(2015/06 update)

    NTT Tech Conference 2022 での「Dockerからcontainerdへの移行」の発表資料です https://ntt-techconf.connpass.com/event/241061/ 訂正: P2. . 誤: ``` Ship docker run -it --rm alpine Run docker push ghcr.io/ktock/myalpine:latest ``` 正: ``` Ship docker push ghcr.io/ktock/myalpine:latest Run docker run -it --rm alpine ```

    Redis勉強会資料(2015/06 update)
    koba04
    koba04 2013/10/31
  • Flickr: RedisをMySQLのセカンダリインデックスにする - ワザノバ | wazanova.jp

    http://code.flickr.net/2013/03/26/using-redis-as-a-secondary-index-for-mysql/ Flickrエンジニアブログで、Redisを利用したDBクエリ最適化の事例を紹介しています。 1) 背景 Yahoo.comのサイトの右側に、直近でアクティブなFlickrコンタクトの写真が10枚掲載 [例] されます。 Yahoo.comのトップページのサイトパフォーマンスを担保するため、このAPIはかなり厳しめのSLA (Service Leve Agreement) が課せられてます。直近に写真をアップロードしたアクティブなユーザのリスト作成の際、コンタクト数が多いユーザが存在すると、SLAを守るパフォーマンスがだせないため、クエリとMySQLのインデックスを改善する必要がでてきた。 2) 最初の試み 直近のコンタクトデータを非

    koba04
    koba04 2013/10/22
  • Redis::Fastってモジュールを書いた

    hiredisをPerlから扱うためのライブラリとして Redis::hiredisってのがあるけど、 なんだか微妙だって聞いたので自分でPerlのhiredisバインディング書いてみたよ。 https://github.com/shogo82148/Redis-Fast (READMEからRedis.pmをそのまま持ってきたことがまるわかりですね。なんとかしよう。) 使い方 Redis.pmと全く同じインターフェースなので、 そのまま置換できる、はず。 use Redis::Fast; my $redis = Redis::Fast->new; ### synchronize mode $redis->set('hoge', 'piyo'); print $redis->get('hoge'); # piyo ### asynchronize mode $redis->get('hoge

  • FluentdとRedisを使ったランキング機能の実装 | SmartNews開発者ブログ

    ゴクロの大平です。ごくろうさまです。 Redisは高速で、かつデータの永続化や、複数のデータ型によるストア(list,set,sorted set等)も対応しており、機能的が豊富ということから愛用者の多いKVS実装の一つだと思います。 特に私のようなアプリケーションエンジニアの人間にとってはデータ型のバリエーションの豊富さが便利さを感じる部分で、たとえばlistを用いてタイムライン的な情報や履歴情報の管理、sorted setを用いてランキング情報の管理、などのようにアプリケーションの需要の多くにRedisが対応することができます。 これらの情報を登録する際のフローとしては自作のアプリケーションから直接、というケースが多いと思いますが、せっかくFluentdのような便利なlog collector実装があるので、FluentdとRedisを組み合わせる事でカジュアルに情報の蓄積を行いたい

  • Redisのメモリ設定とファイル設定のdiff取るスクリプト書いた - Perl勉強メモ アルパカDiary出張版

    ※2013/07/25 スクリプトと概要をUpdateしました 次期バージョンであるRedis 2.8ではこの問題を少しでも解決しようと、 CONFIG REWRITE というコマンドで、redis.confの書き換えを行えるらしい、 が、結局それを忘れたら同じことなのでこの問題の解決にはなるかは微妙なところだ。 メモリ上にしか反映されていない設定があるかどうかをなんらかの方法でチェックすることができれば監視するなどできると思うのだが…。 http://unknownplace.org/archives/twilio-redis-incident.html 書き捨てっぽいですが、差分をとるスクリプトをペロッと書いてみました。 概要 以下のようなことをしています。 値が空のキーはデフォルト値を設定 単位(K/M/G)を最小単位に戻す メモリ上のキーを正とします*1 メモリにのみキーが存在する

    Redisのメモリ設定とファイル設定のdiff取るスクリプト書いた - Perl勉強メモ アルパカDiary出張版
    koba04
    koba04 2013/07/25
  • 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を再起動する

    koba04
    koba04 2013/07/25
  • おそらくはそれさえも平凡な日々: Redis::LeaderBoardっての書いてた

    https://github.com/Songmu/p5-Redis-LeaderBoard https://metacpan.org/module/Redis::LeaderBoard RedisのSorted Setがランキング作るのとかに便利だよーってのは今や多くの人に知られるところですが、 同率問題とかがめんどくさかったりするので、その辺解決したやつを書いてみました。 というか、このへんみなさん個別に書いてると思うんですけど、色々めんどくさくなってカッと なってCPANに上げました。Synopsis丸コピですが、以下のような感じで使います。 use Redis; use Redis::LeaderBoard; my $redis = Redis->new; my $lb = Redis::LeaderBoard->new( redis => $redis, key => 'lead

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

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

    Redisを使ったランキング機能の実装
    koba04
    koba04 2013/05/29
    わかりやすい
  • App::RedisTopをcpanに上げて念願のCPAN Authorになったよ - Perl勉強メモ アルパカDiary出張版

    上がったようです。わーい\(^o^)/ http://search.cpan.org/~toritsuyo/App-RedisTop-0.01/ cpanm App::RedisTop でインストールできるようになりました。楽ちん! パッチを送っていただいたfujiwaraさん、hirose31さん、 lingerで相談に乗っていただいたsongmuさん、tokuhiromさん ありがとうございました!

    App::RedisTopをcpanに上げて念願のCPAN Authorになったよ - Perl勉強メモ アルパカDiary出張版
    koba04
    koba04 2013/03/20
  • 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出張版
    koba04
    koba04 2013/03/12
  • 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/

    koba04
    koba04 2013/02/27
  • Redis Sentinelを試す · さよならインターネット

    January 15, 2013 某社ではRedisをKeepalivedでフェイルオーバーする構成案 / 酒日記 はてな支店 みたいな構成が使われているとか使われていないとかで、Sentinelはどうなのだろうか というお話がわいたので、カジュアルに試してみました。 参考:Redis Sentinel Documentation 6379 Port が Master 6380 Port が 6379のSlave 上記内容のRedisのセットがあるとします。 [hoge@example ~]# [hoge@example ~]# redis-cli -p 6379 info | grep role -3 latest_fork_usec:340 # Replication role:master connected_slaves:1 slave0:127.0.0.1,6380,online

    koba04
    koba04 2013/01/15
  • 1