[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

redisに関するinouetakuyaのブックマーク (32)

  • Redis 本番障害から学んだコードレビューの勘所

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Redis不適切利用による問題は番運用が始まってから顕在化することが多く、時限爆弾みたいな存在です。事前に防ぐにはコードレビュー段階で叩くしかありません。 Redisはスクリプト言語と相性が良く、適切に利用するとRDBと比較し驚くほど高速なプログラムを組むことができます。昨年尊敬する先輩にコードレビューで斧100くらい(レビューコメント)投げられて血まみれになりつつ学んだことを、まとめて書いてます。概要は『消えても良いデータならRedis』 Redisのメモリが溢れたら... (この話は事実ではなくファンタジーです。) 深夜電話で叩

    Redis 本番障害から学んだコードレビューの勘所
  • Redis作者自身によるRedisとMemcachedの比較 | Yakst

    Redisの作者antirez氏自らによる、memcachedとRedisの長所短所の比較。特に、Redisを単なるキャッシュ用アプリケーションとしてmemcachedと比較することの間違いと、それぞれの向いている使用方法についての私見。 あなたが私と面識があるなら、私が競合製品があることが悪いと考える人間でないことはご存知でしょう。ユーザーに選択肢があることは当にいいことだと思っていますし、だからこそ他の技術とRedisを比較するようなことはほとんどしませんでした。 しかし、最適なソリューションを選ぶためには、ユーザーは正しく情報を持たねばならないのも確かです。 この記事を書くのは、有名なライブラリであるSidekiqの作者として知られるMike Perhamが、Redisのバックエンドストレージとしての使い方を書いた記事を読んだのがきっかけです。従って、私はMikeがRedisに「反

    Redis作者自身によるRedisとMemcachedの比較 | Yakst
  • Sidekiq の queue を眺める際に使用するコマンドを雑にまとめる - まっしろけっけ

    はじめに 前回書いたこの記事を書く際に実際に積まれている queue をあれこれ見ていたのですが、 その際に使ったコマンドを忘れそうだったのでまとめておく。 めんどくさくてまとめなかったわけでは… shiro-16.hatenablog.com redis-cli まずは基的なこと redis-cli を使って redis のデータを見ることが出来る Redis server に接続して対話的に実行 $ redis-cli redis 127.0.0.1:6379> KEYS * 引数を指定して実行 $ redis-cli KEYS '*' perform_async ※ perform_async で user 3 つ default 2 つ queue を積んだ状態 どんな key が生成されるか $ $ redis-cli KEYS '*' 1) "queue:default" 2

    Sidekiq の queue を眺める際に使用するコマンドを雑にまとめる - まっしろけっけ
  • Sidekiq について基本と1年半運用してのあれこれ - まっしろけっけ

    はじめに 実際に運用していた時に非同期にしていた主な処理は下記のようなものがあります。 iOS Android の push 通知の送信処理 ログの作成 様々な外部 API の呼び出し 非同期で更新しても問題ないデータの更新 Sidekiq is なに sidekiqは非同期処理を実現する gem 他にも Ruby で非同期処理を実現できる有名な gem には resque や delayed_job 等がある。 sidekiq.org Enterprise版等もありますが、 今回はOSS版を使用している前提でのお話しです。 他の非同期処理が可能な gem との簡単な比較 FAQ · mperham/sidekiq Wiki · GitHub この内容は結構真実を語っていることを最近知った Sidekiq Redis マルチスレッド リトライ処理あり おしゃれなダッシュボード Resque

    Sidekiq について基本と1年半運用してのあれこれ - まっしろけっけ
    inouetakuya
    inouetakuya 2015/10/13
    本文中の "ダメな例" に該当するやつを結構やってしまっていて、あっ、あっ、てなった
  • 転置インデックスをredisで永続化する - テノニッキ (@hideack 's diary)

    検索エンジン自作入門 ~手を動かしながら見渡す検索の舞台裏を読んでみたところから続く検索してみるシリーズ。 過去に転置インデックスを利用して検索してみるといったエントリを書いてJavaScriptのハッシュで構成された転置インデックスを利用して検索を試みていたが、このままだと永続化できないのでredisを用いて永続化してみた。 node.jsでredisを扱う場合はnode_redisを利用するのがよさそうなのでnpm経由でインストール。 $ npm install redis --save 使い方はそのままの形なので先のgithubのREADME.mdを参照すれば特に支障なく利用できるかと思う。 基的にはredisのコマンドがそのままメソッドとして実装されているので、見た感じそのままである。 今回は転置インデックスをredisに格納するにあたって、以下の方法で実装してみた。ここはひとま

    転置インデックスをredisで永続化する - テノニッキ (@hideack 's diary)
  • Redis の永続化について調べた - akishin999の日記

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

    Redis の永続化について調べた - akishin999の日記
  • 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/

  • 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導入後にトラブル発生、そのレポート

    こんにちわ、ミツバチワークス stoneです。 今回は、redisシリーズ第3弾、実際にredisをサービスの投入してみて、うまく行かなかった事例についてご紹介します。 redisの使用用途 今回、いくつかあるセッションデータのうち2つをMySQLからredisへ移行させました。 これらのセッションデータ、MySQL上では、セッションIDの他に複数のカラムから構成されているのですが、redis上では、この複数のカラムをserialize()して、 key(string) => value(string) という形で格納するようにしました。 ちゃんとソースコードで確認はしていないのですが、memcachedでも、TTLが設定できますが、TTLを過ぎたデータを監視してクリアしていないですよね。 また、memcached内部のslabの構成次第では、TTLまでデータが保持されずに、データがクリア

  • 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におけるRDBファイルのバックアップ | TECHSCORE BLOG | TECHSCORE BLOG

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

  • Pairy : チャットデータを Redis から Amazon DynamoDB に全移行した話(1) - Tech Blog

    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インスタン

    Pairy : チャットデータを Redis から Amazon DynamoDB に全移行した話(1) - Tech Blog
  • AWS ElasticCacheのRedisをDefault設定で使ったときのConnection Leakの解決方法 - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)

    現在、弊社にて提供しているサービスのほぼ全てにおいてAWS(Amazon Web Service)を利用しており、その中でも頻繁にアクセスが必要なデータについてはElasticCacheのRedis/Memcachedを利用しています。今回は、そのElasticCacheでRedisを利用する場合において、弊社の運用で発生してしまったトラブルと対応方法について紹介させていただきたいと思います。 TL;DR AWS ElasticCacheのRedis ServerのDefaultのパラメータ設定では、Connection Timeoutの設定がされていないので、そのまま放置するとConnection数が溜まり続けて危険ですので、ConnectionのTimeout設定を行いましょうというお話になります。 今回発生した問題 Blue-Green Deploymentを多用して何度もデプロイを

    AWS ElasticCacheのRedisをDefault設定で使ったときのConnection Leakの解決方法 - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)
  • ElastiCache編~Redisを試してみる①~

    こんにちは! JQです。 前回は『OSS編~Puppetでサーバ設定管理②~』と題して、サーバ設定管理ツールのPuppetでマニフェストを詳しくを触ってみました。 今回は『ElastiCache編~Redisを試してみる①~』と題して、ElastiCacheでRedisを試してみたいと思います。 Redisとは Redis(Remote dictionary server)はインメモリのKey-Valueストアです。 ElastiCacheの構築 1. Cluster起動 RedisでElastiCacheを起動します。 Statusが「avaliable」になれば完了です。 2.接続確認 接続するクライアントツールをインストールします。 $ sudo yum -y install gcc $ sudo wget http://download.redis.io/redis-stable.

  • ElastiCache for Redisの新機能をためしてみた - クックパッド開発者ブログ

    インフラストラクチャー部 星野(@con_mame)です。 クックパッドでは、AWSを活用してサービスを行っています。 現在クックパッドでは、各種キャッシュにMemcachedやRedisを使用しています。 しかし、用途の多様化やアクセス数の増加などでこれらのサーバのインスタンス数が増加し管理コストが増加してきています。 特にRedisサーバのインスタンス数が増加しており、AWSのサービスの中でもキャッシュのサービスを提供しているElastiCache for Redisへの置換えを検討しています。 ElastiCache for Redisは、一部管理系のコマンドがrenameされており使用出来ませんが、通常のRedisと同じ物で、現在Version 2.6.13と2.8.6が使用出来ます。 SlaveにあたるものはReplication Groupという形で指定でき、Replicati

    ElastiCache for Redisの新機能をためしてみた - クックパッド開発者ブログ
  • AWS News Blog

    Amazon SageMaker Geospatial Capabilities Now Generally Available with Security Updates and More Use Case Samples At AWS re:Invent 2022, we previewed Amazon SageMaker geospatial capabilities, allowing data scientists and machine learning (ML) engineers to build, train, and deploy ML models using geospatial data. Geospatial ML with Amazon SageMaker supports access to readily available geospatial dat

  • railsでredis-objectsを使う際にはredis-namespaceも使ったほうがいいかも - Qiita

    railsでredisを扱うのにredis-objectsとか便利ですよね。 なんですが、このredis-objectsをrailsのARで使用する際、デフォルトではredisのキーはモデル名:ID:指定したキーといった形になります。 たとえばこんなかんじで使ってるとして

    railsでredis-objectsを使う際にはredis-namespaceも使ったほうがいいかも - Qiita
  • Happy Elements Labs: redis-objectsがなくてもプロジェクトは回るが

    あるととても便利だと思います はじめに エンジニアの@ryooo321です。 よろしくお願いします。 ご存知の方も多いかもしれませんが、今回はRubyからRedisを使う際にとても扱いやすいredis-objectsをご紹介したいと思います。 https://github.com/nateware/redis-objects 特徴 ・ORMではない ・Redisのデータ型(counter, value, list, hash, set, sorted-set)をサポート ・ロック機能も利用可能 好きなところ ・モデルの任意のプロパティをRedisに保存するような感覚で利用できる点。 ・Redisのキー情報をシームレスに管理できる点。 ・ARモデルの一部プロパティをRedisに移したりできるので、データストア単位でなく理想の単位でモデルを定義できる点。 This

    Happy Elements Labs: redis-objectsがなくてもプロジェクトは回るが
  • redis-objectsを用いたお知らせ機能の実装 - Qiita

    facebookの上に出てくるようなお知らせ機能を作成するために、 redisを用いて実装をしてみたのでメモ。 お知らせ機能の作成方法、redis-objectsの使い方の参考になれば。 プッシュ機能の実装ではないのでご注意を。 詳しいAPIの利用方法はGithubで。 環境 Ruby 2.0.0 Ruby on Rails 4.0.2 Redis 2.8.9 redis(gem) 3.0.7 redis-objects 0.9.1 要求 まず前提として要求の確認をしておきます。 未読お知らせ件数は日をまたいだ全てのものをカウント お知らせの内容、未読既読は日毎に管理 redis-objectsのインストール 以下の行を追加してbundle install

    redis-objectsを用いたお知らせ機能の実装 - Qiita
  • Ruby+Redisでランキングを実装してみる - Islands in the byte stream (legacy)

    Redisでランキング機能を実装してみる - (゚∀゚)o彡 sasata299's blog を自分がやったらこんな感じかなと思って書いてみました。実行環境はRuby 2.0.0-p0です。 #!/usr/bin/env ruby require 'redis' require 'pp' class Leaderboard class Entry attr_reader :user_id, :score, :rank def initialize(user_id, score, rank) @user_id = user_id @score = score @rank = rank end def inspect "#<#{self.class} user_id:#{user_id}, score:#{score}, rank:#{rank}>" end end def initiali

    Ruby+Redisでランキングを実装してみる - Islands in the byte stream (legacy)