タグ

Redisに関するji_kuのブックマーク (36)

  • Redisアプリケーションパターン | おそらくはそれさえも平凡な日々

    この記事は、はてなエンジニアアドベントカレンダー2016の12日目の記事です。 先日こういうツイートをしました。 Redisはキャッシュ用途のミドルウェアだと思わない方が良いと思う — songmu (@songmu) 2016年12月10日 言いたかったのは、Redisはキャッシュのためだけのミドルウェアだと誤解されがちなのですが実際はそうではないということです。実際、公式サイト を見に行くと以下の様なことが書かれています。 Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. つまり、Redisは多彩なデータ構造を保持できるインメモリーのデータストアで、様々な活用法があり、キャッシュとして「も」使える、とい

    Redisアプリケーションパターン | おそらくはそれさえも平凡な日々
    ji_ku
    ji_ku 2016/12/14
  • Redis 本番障害から学んだコードレビューの勘所

    Redis不適切利用による問題は番運用が始まってから顕在化することが多く、時限爆弾みたいな存在です。事前に防ぐにはコードレビュー段階で叩くしかありません。 Redisはスクリプト言語と相性が良く、適切に利用するとRDBと比較し驚くほど高速なプログラムを組むことができます。昨年尊敬する先輩にコードレビューで斧100くらい(レビューコメント)投げられて血まみれになりつつ学んだことを、まとめて書いてます。概要は『消えても良いデータならRedis』 Redisのメモリが溢れたら... (この話は事実ではなくファンタジーです。) 深夜電話で叩き起こされました。どうやらアクセス障害みたいです。 何人かで実機確認したら、まったくゲームが遊べない。データ不整合怖いのでメンテIN。 ほどなくしてRedisが溢れメモリ不足で新規書き込みが出来なくなっていると判明。サーバのメモリ容量は64GByteでこれ以

    Redis 本番障害から学んだコードレビューの勘所
    ji_ku
    ji_ku 2015/11/05
  • よくわかるLinux帯域制限 | GREE Engineering

    矢口です。 みなさんはLinuxのtcという機能をご存知でしょうか。送信するパケットの帯域制御を行うことができる大変強力な機能で、グリーでもいくつかの用途で使用されています。 具体的な事例の一つはRedisです。Redisではreplicationを新規に開始する際やfailoverが発生しmasterが切り替わった際(特に2.6系)にストアされている全データが転送されます。しかし帯域制限をかける機能がないため、ネットワーク帯域を圧迫してしまう危険性があります。また通常のクライアントとの通信でも大量のクエリにより予想以上の帯域を使用してしまう可能性があります。このような場合にtcを用いることでRedisの使用する帯域をコントロールできます。 このように有用なtcですが残念なことに日語/英語ともにわかりやすい解説や詳細な情報は多くありません。 私も社内において使われていたtcの設定に問題が

    よくわかるLinux帯域制限 | GREE Engineering
    ji_ku
    ji_ku 2015/03/27
  • Amazon ElastiCache (Redis)のMulti-AZを構成する | DevelopersIO

    2014/10/28更新 : プライマリノードの切り替えについて追記しました。 ども、大瀧です。 日、AWSのキャッシュサーバー as a ServiceのElastiCache(Redis)にMulti-AZ機能がリリースされました。早速試してみたので、レポートしてます! Multi-AZ機能とは Multi-AZ機能とは、Amazon RDSで提供されている、AWSのデータセンターであるアベイラビリティゾーン(AZ)レベルの障害に対応する可用性機能です。 ElastiCache(Redis)では、従来から複数AZへのキャッシュノードの配置とノード間レプリケーションがサポートされていましたが、プライマリーノードのフェイルオーバーが手動でした。キャッシュノードの障害検知とプライマリーノードの自動フェイルオーバーが今回のアップデートで追加されたと考えると良いでしょう。 RDSのMulti-

    Amazon ElastiCache (Redis)のMulti-AZを構成する | DevelopersIO
  • 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 Sentinelを運用してみたお話 | GMOメディア エンジニアブログ

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

    ji_ku
    ji_ku 2013/07/05
  • 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

    ji_ku
    ji_ku 2013/06/16
  • Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT

    平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識

    Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT
    ji_ku
    ji_ku 2013/04/03
  • Redisでランキングを作ろうとしたんだ(完結編) · polidog lab++

    前回の「Redisでランキングを作ろうとしたんだ」で悩んでた部分が解決できました。 かばだんなさん様からのコメントをいただき、対応できました。 当に感謝しています!! んでもって、結局こんな感じのコードになれば同一を含んだランキングが取得できるかと思います。 <?php $server = "localhost"; $port = 6379; $timeout = 2.5; $redis = new Redis(); $redis->connect($server,$port,$timeout); // 得点 $userPoint = array( 'さんま' => 200000, 'たけし' => 4000, 'ところ' => 300, 'いたお' => 200, 'はまだ' => 100, 'やまだ' => 100, 'はざま' => 40 ); // 得点をセットする foreac

    ji_ku
    ji_ku 2013/02/01
  • コマンドリファレンス — redis 2.0.3 documentation

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

    ji_ku
    ji_ku 2013/01/30
  • SQLとRedisでのランキングの扱い方 - wyukawa's diary

    今日はランキングの話を書いてみたいと思います。 サンプルデータは以下です。プレミアリーグの昨シーズン(2011-12シーズン)の得点データの一部です。 name score Kun Agüero 23 Mario Balotelli 13 Edin Džeko 14 Wayne Rooney 27 Robin van Persie 30 Emmanuel Adebayor 17 Demba Ba 16 Papiss Demba Cissé 13 Clint Dempsey 17 Grant Holt 15 Yakubu Ayegbeni 17 Steven Fletcher 12 ここで今シーズンの今のところの得点王であるDemba Baさんが昨シーズン得点ランキング何位だったかを知りたいとします。 危険なほどのスピードで動作するといわれるRedisの「ソート済みセット型」を使う場合は以下

    SQLとRedisでのランキングの扱い方 - wyukawa's diary
    ji_ku
    ji_ku 2013/01/25
  • Redis の Pub/Sub を使って Node.js + WebSocket のスケールアウトを実現する方法

    Node におけるスケールアーキテクチャ考察(Scale 編)というエントリーを読んで、RedisはPub/Sub型通信をサポートしているという事を知りました。エントリーでも言及されているように、Pub/Subを使えば Node.js + WebSocket サーバをスケールする際に、中継サーバの役割を果たす事が出来るはずです。 そんな訳で実際に Node.js と Redis を使って Pub/Sub の実験を行なってみました。ユーザが別々のNode.jsサーバに接続していてもWebSocketを通してメッセージのやり取りを出来るようにします。 イメージとしてはこんな感じです。 下準備# Ubuntuの場合は apt-get で1発でインストールする事が出来ます。 $ sudo apt-get install redis npmでredisモジュールをインストールします。 $ npm i

    Redis の Pub/Sub を使って Node.js + WebSocket のスケールアウトを実現する方法
    ji_ku
    ji_ku 2012/10/01
  • Redis Presentation | PDF | No Sql | Data Management

    Redis is an informal, loosely-defined term for non-relational, structured data storage systems. Memcached is a networked "hash in the sky" behind a simple protocol. Redis can be made to expire after or at a certain time.

    Redis Presentation | PDF | No Sql | Data Management
    ji_ku
    ji_ku 2011/07/02
  • Page not found - ODBMS.org

  • 流行の技術に乗り遅れたくなくて、NodeとRedisとMongoとPythonとjQuery Mobileを一気に動かしてみた - カイワレの大冒険 Third

    最初はNodeをやってみたいと思っていただけでした。 勉強会とかでLTとか聞いてると、わりと出てくるNodeの話題。JavaScriptは嫌いじゃないし、いつかやってみたいと思ってたけど、なかなか手を出す気にならなくてやってませんでした。 ただ、やろうと思ったら色々ライブラリとか揃ってきてるみたいだし、なんかテンションあがって、色々動かしてしまったという話し。基はこんな感じ。 Nodeは絶対動かす。ブラウザからアクセスできるようにする 中身は普通のHTMLじゃ面白くないから、jQuery Mobileにしよう ただ、そのままレスポンス返すのも味気ないし、NoSQLから取り出した方が早いんじゃね じゃ、RedisとMongoDB使うか あとNodeでValue取り出すし、勉強ついでにPythonからINSERTしてみるか ってなこと考えました。ということでやってみた。 ほんとはそれぞれ別に

    流行の技術に乗り遅れたくなくて、NodeとRedisとMongoとPythonとjQuery Mobileを一気に動かしてみた - カイワレの大冒険 Third
    ji_ku
    ji_ku 2011/06/26
  • [OLD/STALE] Redis cluster (japanese)

    Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSSYahoo!デベロッパーネットワーク

    [OLD/STALE] Redis cluster (japanese)
    ji_ku
    ji_ku 2011/06/26
  • redisの実用例。redis速いよredis

    こんにちは!hiroshiです! 今回は、最近DECOLOG界隈で大ブームのredisについて、その利用用途や導入方法についてお話ししたいと思います。 今回のお話と関連する過去エントリに以下がありますので、こちらに目を通していただいた上でエントリを読んでいただくと分かりやすいと思います。 NoSQL redisとMySQLのベンチマーク比較 redisのサービスへの投入 redis導入後にトラブル発生、そのレポート DECOLOGでのMySQL Archiveエンジンの使い方 …と、これまでのエントリからは実運用できてるのかどうか微妙なタッチになっているかもしれませんが、結論からいうと実運用できてます! 「redis導入後にトラブル発生、そのレポート」ではTTLを設定した場合にうまくいかないケースがあったのですが、TTLなしのデータでは特に問題なく運用できました。 現在のredisの利用

    ji_ku
    ji_ku 2011/06/15
  • ニコニコ生放送に見る Redis 活用ノウハウ 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    ニコニコ生放送に見る Redis 活用ノウハウ 記事一覧 | gihyo.jp
    ji_ku
    ji_ku 2011/06/15
  • 第2回 Redisの導入と基本機能 | gihyo.jp

    今回は実際にRedisをインストールしてみるところから、コマンドラインクライアントを使った基的な操作方法、そして実際のアプリケーション開発時に重宝するDB選択やタイムアウトなどのRedis特有の仕様について説明します。 インストール ダウンロード 連載執筆時点の最新stableである、2.0.4をダウンロードします。 $ wget http://redis.googlecode.com/files/redis-2.0.4.tar.gz コンパイル RedisはANSI Cで書かれ、外部の依存ライブラリの必要ないシンプルな実装になっているため、コンパイルは以下のステップで完了します。 $ tar xzf redis-2.0.4.tar.gz $ cd redis-2.0.4 $ make 「redis-server」や「redis-cli」が生成されたのを確認してください。 設定の変更

    第2回 Redisの導入と基本機能 | gihyo.jp
    ji_ku
    ji_ku 2011/06/15
  • 第4回 Redisを用いたアプリケーション開発(2) | gihyo.jp

    前回紹介したRedisのLIST型に続き、今回はSET型とSORTED SET型について、その構造とWebアプリケーション開発への応用を紹介します。 SET型の構造 RedisのSET型は、重複のない文字列要素の集合を保持するデータ型です。Javaのコレクションフレームワークをご存知の方には、「⁠HashSet」のようなもの、と想像していただくと分かりやすいかと思います。 LIST型のPUSHやPOPと同様、SET型への追加/削除の時間計算量はO(1)となり、理論上はサイズに関係なく一定時間で操作できることになります。実際、ニコニコ生放送のシステムでは、要素数にして数万規模のSET型に対して、分間数千~数万回の追加操作を行っています。 一見、SET型のデータ構造は単純すぎて、アプリケーションで活用する機会が想像しにくいかもれません。RedisにはHash型という連想配列のように使えるデータ

    第4回 Redisを用いたアプリケーション開発(2) | gihyo.jp
    ji_ku
    ji_ku 2011/06/13