タグ

redisに関するamari3のブックマーク (42)

  • Redisの調査についてとrmlp

    shibuya.go#2 での発表資料にします

    Redisの調査についてとrmlp
  • RedisサーバのCPU負荷対策パターン - ゆううきブログ

    Redisは多彩なデータ構造をもつ1インメモリDBであり、昨今のWebアプリケーションのデータストアの一つとして、広く利用されている。 しかし、一方で、性能改善のための手法を体系的にまとめた資料が見当たらないと感じていた。 実際、最初にCPU負荷が問題になったときにどうしたものかと悩み、調査と試行錯誤を繰り返した。 そこで、この記事では、自分の経験を基に、RedisサーバのCPU負荷対策を「CPU負荷削減」「スケールアップ」「スケールアウト」に分類し、パターンとしてまとめる。 背景 RedisのCPU負荷対策パターン CPU負荷削減 multiコマンド Redisパイプライニング Luaスクリプティング Redisモジュール(夢) スケールアップ スケールアウト 参照用スレーブ 垂直分割 水平分割 Redis Clusterによる水平分割 その他 スライド資料 あとがき 参考資料 背景 R

    RedisサーバのCPU負荷対策パターン - ゆううきブログ
    amari3
    amari3 2017/09/13
  • Redis 4.0正式リリース。モジュールによる機能やデータの拡張が可能に、新レプリケーションエンジンで運用が改善

    Redis 4.0正式リリース。モジュールによる機能やデータの拡張が可能に、新レプリケーションエンジンで運用が改善 Redis 4.0はモジュールによる機能拡張の実現、新しいレプリケーションエンジンによる高速なレプリケーション、新しいアルゴリズムの追加によるキャッシュの改善、フラッシュの非同期実行など、多くの機能追加が行われています。 リリースノートには、「内部における変更に関していえば、4.0はおそらくこれまででもっとも劇的なリリースだろう」と、次のように記されています。 Note that 4.0 is probably one of the most extreme releases of Redis ever made in terms of changes inside the internals 新しいレプリケーションエンジン「PSYNC2」 Redis 4.0では新しいレプリ

    Redis 4.0正式リリース。モジュールによる機能やデータの拡張が可能に、新レプリケーションエンジンで運用が改善
    amari3
    amari3 2017/07/18
  • Redis::Fast の reconnect について - KAYAC engineers' blog

    この記事は tech kayac advent calendar 9日目の記事です。 インフラチームの @tkuchikiです。 最近検証した Redis::Fast の reconnect について紹介します。 Redis::Fast とは Redis::Fast は、弊社 @shogo82148 作の高速な perl の Redis クライアントです。 社内の perl で書かれたアプリケーションは、Redis を使う場合、ほぼこのモジュールを使っています。 なぜ reconnect を考慮しないといけないのか Redis Sentinel や ElastiCache for Redis を使い、フェイルオーバーできる冗長構成を組んだ場合のことを考えます。 Master がダウンした際、自動で Slave を Master に昇格してくれるためダウンタイムが短くて済みます。 この場合、

    Redis::Fast の reconnect について - KAYAC engineers' blog
  • Redis Cluster のリシャーディングとorphaned masterの話 - CyberAgent エンジニア Advent Calendar 2014 2日目

    redis_cluster.md Redis Cluster のリシャーディングとorphaned masterの話 (2019/04 追記 こちらの情報は非常に古く、またRC版での結果となります。記録として残していますが参考になさらないでください) CyberAgent エンジニア Advent Calendar 2014 2日目です。 昨日に引き続き、秋葉原ラボの柿島が担当します。仕事ではHadoopクラスタの運用を中心に、秋葉原ラボのインフラ/ミドルウェアまわりを担当しています。今年はHadoop、mesos、Aerospikeと分散型のシステムを触る機会が多い1年でした。 この記事のテーマはRedis Clusterです。Redis Clusterが使えるようになるRedis 3.0.0は10月にRC1がリリースされました。2015年のQ1にstableリリースを目指しているようで

    Redis Cluster のリシャーディングとorphaned masterの話 - CyberAgent エンジニア Advent Calendar 2014 2日目
  • 一体いつからRedisがSorted Setの実装にSkip Listしか使ってないと錯覚していた? - 愛と勇気と缶ビール

    デフォルトの設定 (zset-max-ziplist-entries, zset-max-ziplist-value) では 該当するSorted Setのエントリ数が128個以下 該当するSorted Setに含まれるmember (not score) のデータ長が全て64byte以下 という2つの条件が成立している場合、Sorted Setの表現にはSkip ListではなくZip Listというデータ構造が使われる。ZADD, ZCOUNT等の実装もどちらのデータ構造を使っているかのフラグで分岐している。 Zip Listはポインタを使わずデータとそのオフセットだけで表現された双方向リストであるため、空間効率はよいが全体のサイズが大きくなるとすぐ使えなくなる。 Redisにおいては、Sorted Setへのinsertに際して上記条件のどちらかが満たされなくなった場合にZip Li

    一体いつからRedisがSorted Setの実装にSkip Listしか使ってないと錯覚していた? - 愛と勇気と缶ビール
    amari3
    amari3 2015/02/20
  • Twitterのキャッシュを支えるRedis - ワザノバ | wazanova

    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は、(ユーザが閲覧している範囲に追加反映するということなの

  • Redis(2.8系)の基本オペレーションとかSentinelの挙動とかの色々メモ - 元RX-7乗りの適当な日々

    最近必要に迫られて、ようやく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,中島聡,堤智

    Redis(2.8系)の基本オペレーションとかSentinelの挙動とかの色々メモ - 元RX-7乗りの適当な日々
    amari3
    amari3 2014/03/21
  • Redis勉強会資料(2015/06 update)

    Redis勉強会の資料です。2013年に初版をアップしました。2015年6月にRedis-Clusterの内容を追記して再アップを行っています。

    Redis勉強会資料(2015/06 update)
  • RedisにおけるRDBファイルのバックアップ | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 Redis におけるバックアップとリストアについて調べました。 データを永続化する方法については「Redisにおけるデータの永続化」で調べました。 RDB ファイルのバックアップ RDB ファイルでのバックアップ手順は以下のようになると思います。 BGSAVE コマンドを実行する(非同期での RDB ファイルの生成が開始される)。 RDB ファイルの生成が完了するまで待機する(完了したかどうかは、LASTSAVE コマンドの結果が変化したことや、RDB ファイルの i-node 番号が変化したことで判別可能です)。 (redis-check-dump で生成された RDB ファイルに問題が無いことを確認する。) RDB ファイルをコピーする(別サーバなど Redis が動作するサーバがクラッシュしても安全な場所に保管する)。 上記を一日一回など、定期的に実行します。

    amari3
    amari3 2013/12/12
  • 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

  • Redis で Sharding してみた - akishin999の日記

    Redis の Sharding は現状クライアントサイド、つまりライブラリ依存で実現されています。 ここでは RubyJava のライブラリで実際に Sharding を試してみました。 redis-rb redis/redis-rb · GitHub https://github.com/redis/redis-rb Ruby から Redis を使うための標準的なライブラリです。 gem コマンド一発でインストールできます。 # gem install redis --no-rdoc --no-ri redis-rb で Sharding するには Redis::Distributed クラスを使います。 Redis::Distributed を使って Sharding するサンプルコードは以下のようになります。 # -*- coding: utf-8 -*- require

    Redis で Sharding してみた - akishin999の日記
    amari3
    amari3 2013/08/06
  • Redis の永続化について調べた - akishin999の日記

    Redis でのデータの永続化方法について調べたので、忘れないうちにまとめておきます。 調べた時の Redis のバージョンは 2.6.13 です。 スナップショット(RDB) Redis のデフォルトの永続化の仕組み この設定が有効な場合、Redis は定期的にデータベースの内容をディスクに出力する Redis を再起動するとこのファイルからデータが読み込まれ復元される 一定回数の更新 + 一定間隔でディスクにファイル出力 ファイル出力タイミングは設定ファイル、CONFIG コマンドで変更可能 無効にもできる 出力は非同期で行われるため、プロセスがクラッシュした場合には前回のスナップショット以降のデータが失われる可能性あり 多少のデータロスを許容できるようなデータならスナップショットのみでもイケそう 手動で実行するには SAVE コマンドまたは BGSAVE コマンドを実行 SAVE は

    Redis の永続化について調べた - akishin999の日記
    amari3
    amari3 2013/08/06
  • RedisでAOFを有効化する時に全データを失わないために大切なたった一つのこと | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 RedisでAOFを有効化する時に全データを失わないために大切なたった一つのこと。 それは、 いきなり設定ファイルの appendonly を yes にして再起動しない です。 やるべきことは、 (1)redis-cli で CONFIG SET appendonly yes する。 (2)設定ファイルの appendonly を yes にする。 です。 理由 AOF を有効にした状態で Redis を起動すると、データベースの内容は AOF ファイルから復元されます。 そのときに AOF ファイルが存在しなければ、データベースは空っぽになります。 「今まで AOF は無効にしていたけれど、念のため AOF も残すようにしよう。」と思った時に、 「設定ファイルで appenfonly を yes にして再起動」とすると全データが消えてしまうのでご注意を。

    amari3
    amari3 2013/08/06
    これはやってしまいがち
  • レプリケーションの設定方法 — redis 2.0.3 documentation

    一般的な情報¶ Redisのマスタースレーブのレプリケーションの利用と設定はとても簡単です。マスターにスレーブからの接続許可を出すだけで利用できます。以下は、レプリケーションに関するいくつか重要な情報があります。 マスタは、複数のスレーブを持つことができます。 スレーブはさらに複数のスレーブを持つことが出来ます。 Redisレプリケーションは、マスター側では非同期で動作します。これにより、複数のスレーブからのリクエストがあった場合にも、マスターの動作は継続的に行われます。代わりに、最初の同期を実行している間にレプリケーションは、スレーブ側でブロックされています。スレーブがクエリに返信することはできません 読み込み専用のスレーブを複数使用することでスケーラビリティを確保することが出来ます。また、冗長性も確保されます。 どのようにRedisはレプリケーションしているのか?¶ レプリケーションを

    amari3
    amari3 2013/08/05
  • 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
  • 軽量なTime-based ID生成器”shakeflake(仮称)”について | SmartNews開発者ブログ

    大平です。今回はさだまさしネタは特に無しです。 先日、サービスのクローラーで使用しているID生成器について置き換えを行いました。非常に地味な話になりますが、記事ではその辺の内幕の話をしたいと思います。  ID生成にまつわる苦悩 弊社ゴクロの提供しているSmartNewsは表向きはニュースアプリですが、裏側の仕組みは検索エンジンに近似しています。ユーザーの方々の興味関心や、アクセス傾向をクエリーとし、その内容に応じた話題のニュースを検索結果として返却する、という風に捉えていただくと、なんとなく私が言わんとしている事を想像していただけるかと思います。 SmartNewsはTwitterのつぶやき情報を用いたトレンド分析をベースとしており、話題になっているニュースを選定するためには、大量のTwitter上のtweet、ならびにその中に含まれているURLに対してクロールを行う必要があります。日々

  • コマンドリファレンス — redis 2.0.3 documentation

    古いキー oldname を新しいキー newname にリネームする。もし新しいキーがすでに存在する場合、上書きする。

    amari3
    amari3 2013/08/01
  • Redisのランキング管理API作りました

    概要 RedisのSort SetのAPIが若干使いづらいので、ソーシャルゲームでのユースケースに即したAPIでラップしました。 https://github.com/matsubo/redis-ranking インストール Composer対応してあります。 composer.jsonに以下を書いて、php composer.phar updateしてください。 { "require": { "redis/ranking": "1.0.*" } サンプルコード <?php require __DIR__ . '/../vendor/autoload.php'; use Matsubo\Redis\Ranking; $redis = new \Redis(); $redis->connect('127.0.0.1', 6379); $ranking = new Ranking($key =

    Redisのランキング管理API作りました
  • 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出張版
    amari3
    amari3 2013/07/26