タグ

redisに関するsupermomongaのブックマーク (12)

  • Railsのマスタ的なModelのキャッシュについて[Redis]

    Railsで中規模なサイトを作っていく上で 避けて通れないのが、増えてきたモデルを適切にキャッシュするしくみのように思えます。 特に変更が少ないマスタ的なテーブルに対して、『多対多』で関連付け(アソシエーション: association)がある場合などは、 それなりのSQLの発行コストになることがあります。そこを適切にキャッシュすることでDBへの負荷が減り、 ユーザーへのレスポンスが改善されると思います。 今回は、最近実装しているキャッシュの方法について、紹介したいと思います。 (というか偉い人、ぜひいい方法教えてください><) 🍣 前提条件: RailsからRedisにキャッシュ今回は前提条件として、Railsのアプリケーションから『redis-store/redis-rails - GitHub』 のGemを使って、Redisにキャッシュをされているとします。 セットアップ方法は『r

    Railsのマスタ的なModelのキャッシュについて[Redis]
  • Redis による分散ロック — Redis Documentation (Japanese Translation)

    Redis による分散ロック¶ 異なるプロセス同士が、相互に排他的な方法で共有リソースに対して操作を実行する、という環境において、分散ロックは非常に役に立ちます。 Redis を使った DLM (Distributed Lock Manager) の実装については、多くのライブラリやブログポストがあります。しかし、ライブラリごとに異なるアプローチがとられており、またその多くは、より複雑なデザインと比較するとシンプルで、そのぶん保証される内容が低いアプローチとなっています。 このページは、Redis 上で分散ロックを実装するにあたり、標準的なアルゴリズムを提供することを目指すものです。私たちはここで Redlock と呼ぶアルゴリズムを提供します。これは DLM 実装の一種で、よく見かけるような、ひとつのインスタンスを使うアプローチよりも安全である、と私たちは考えています。コミュニティがこの

  • wandoulabs/codis · GitHub - redis cluster powered by go

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    wandoulabs/codis · GitHub - redis cluster powered by go
  • Redis のメモリが足りなくなった時にどうやってチューニングしたか - Qiita

    Redis は便利なのですが、メモリが半分しか使用出来ないという問題が有ります。 非同期でファイルの書き込みを行う際に、メモリのスナップショット(コピー)を取るために、その分の空きメモリが必要なのです。 ここに Redis のソースコードのコメントを翻訳したものを置いておきます。 今回、メモリの空きが足りなくなったのは、準永続的な情報用のサーバと利用している物で、簡単に消すことは出来ませんでした。 そこで Redis のメモリダンプを解析し、利用していないキーの削除やデータ型の変更を行うことにしました。 メモリの解析 メモリダンプはそのままでは人間には理解不能なので、ローカルにdump.rdbファイルをコピーし、 Rdbtools を利用してCSVに出力し、そこから必要なデータに整形しました。 $ rdb -c memory dump.rdb > redis_memory.csv # バイ

    Redis のメモリが足りなくなった時にどうやってチューニングしたか - Qiita
  • EC2など 高負荷クラウド環境における Redis のチューニングについて - tech.guitarrapc.cóm

    たまにはPowerShell 以外の記事を。 某記事でもRedis (REmote DIctionary Server)が memcached に代わり得る利点がBookSleeveを交えて丁寧に説明されました。 そして、Redisの運用が一定の目途を見せていることから、その初期設定に欠かせないチューニングについて記事にしてみようと思います。 全部明かすわけではありませんが、なかなかRedisに関する記事は少ないので、少し参考になれば幸いです。 経験上、高負荷環境ではRedisはチューニングで大幅に安定性が変わります。 インストール? 沢山記事ありますし、簡単なのでここでは省きます。 どうしても!な場合は希望していただければ記事にしますが。 Redis Quick Start 対象バージョン 2.6系とします。 2.4系でも大方一緒ですが、2.6系に特有な部分があるので、注意です。 対象O

    EC2など 高負荷クラウド環境における Redis のチューニングについて - tech.guitarrapc.cóm
  • 本当は怖いMemcached - Qiita

    はじめに データアクセスの高速化、セッションの保持などに非常に重要なポジションを占めているMemcached 特徴をあげると、速い安い美味いで、AWS上のサービス化などされており、非常に扱いやすいプロダクトなのですが、Memcachedそのものが単一障害点とならないように冗長化を測った時に深刻な問題が発生する可能性があることをご存知でしょうか。 システムに心あたりがある方は今すぐ代替手段を検討しなければなりません。 どうしてもMemcachedを使いたいという方はこちらへ それでもMemcachedを使いたいあなたへ 前提条件 そもそも冗長化をしなければ問題ないという運用はその時点で怖いのでNG cache機構という性質上、データが飛ぶのは問題ない(”正”となるデータを他から読み出すだけ)が、誤ったデータが読み出されるのをNGとする Memcachedを利用した時に利用ノードを決定するのは

    本当は怖いMemcached - Qiita
  • 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-Commander

    What is Redis Commander? Redis-Commander is a node.js web application used to view, edit, and manage a Redis Database Download .zip Download .tar.gz View on GitHub Features

    Redis-Commander
    supermomonga
    supermomonga 2014/03/05
    ウェブベースのredisフロントエンド
  • Redis::DistMutex – 時限付き分散ロックで効率良くサイトクロールをしよう | VASILY DEVELOPERS BLOG

    はじめまして。バックエンドエンジニアの吉田です。 2013年5月末の入社以降、大量のEC2インスタンスのVPC移行を担当した後、今はiQONの商品DBを支えるクローラーの改善に取り組んでいます。今回はその改善の1つとして開発したRedis::DistMutexという分散ロック機構のruby実装を紹介をしようと思います。 Redis::DistMutex 開発の経緯や細かい設計の話は後述するとして、まずはつくったgemの紹介をします。 Redis::DistMutex Redisベースの分散ロック機構 rubyのライブラリにあるMutex互換 スレッド間だけでなく、プロセス間・ホスト間でも共有できるMutex 時限つきロックの作成が可能(redisのsetnxとexpireを活用) namespaceを指定できるので、特定の処理ごとにロックの作成が可能 redis2.6以上のみサポート(1秒

    Redis::DistMutex – 時限付き分散ロックで効率良くサイトクロールをしよう | VASILY DEVELOPERS BLOG
  • Redisを使ったランキング機能の実装

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

    Redisを使ったランキング機能の実装
  • Pinterestの急成長を支えてきたアーキテクチャとは? Pythonで開発しAmazonクラウドで運用

    Pinterestの急成長を支えてきたアーキテクチャとは? Pythonで開発しAmazonクラウドで運用 急速に人気が急上昇するWebサービスでは、どのようにスケールするアーキテクチャを構築し運用していくのかはサービスの成否を分けるほど重要です。Pinterestのように急成長してきたサービスのソフトウェア構成やリソース構成はどうなっているのでしょうか、Web上でいくつか情報が公開されているのでまとめてみました。 Pythonで開発し、Amazonクラウドで運用 1年ほど前なので少し古い情報ではあるのですが、Q&AサイトのQuoraにPinterestのco-founder Paul Sciarra氏が書き込んだソフトウェア構成の説明があります。 PinterestPythonで開発されており、MemcachedやNginxなど高速なレスポンスに配慮した構成になっている様子がうかがえま

    Pinterestの急成長を支えてきたアーキテクチャとは? Pythonで開発しAmazonクラウドで運用
  • 『redis、それは危険なほどのスピード』

    どうも、プラットフォームDivでエンジニアをやっている Wataru です。 最近3人目の子供が産まれて、産後自宅勤務をさせてくれた弊社はとてもいい会社だと思います。出産予定のあるエンジニアのかたは是非弊社に転職を。 さて、今回はRedisの紹介をさせて頂きたいと思います。 Redisってすごくマイナーなわけではないのですが、めちゃくちゃ便利なのにあまり注目されていないなーという印象があるので、これを機会に是非使ってみてもらえると嬉しいです。 Redisって何?Redisとは「remote dictionary server」から名前が付けられたオープンソースのkey-valueデータストアです。 MemcacheDB等のKVSとの最大の違いは、格納するバリューがデータ構造というところです。 つまり、リスト・セット・ハッシュなどのデータ構造で格納できるのでバリューに対してアトミックな操作が

    『redis、それは危険なほどのスピード』
  • 1