タグ

redisに関するknj2918のブックマーク (30)

  • Redisの負荷対策 - honeplusのメモ帳

    以前Laravelでの負荷対策とかの記事書いたけど、今度はキャッシュとかに使うRedisの負荷対策について。 Redisは、いわゆるNoSQLのインメモリデータストア。 過去の記事でも書いたように、そもそもキャッシュとかにRedisを使うこと自体が性能対策なんだけど、Redisも万能じゃないので負荷が増えると(稀に負荷が増える前からも)問題を起こすケースがある。 今回は自分が経験した問題と対策を一通りメモがてらまとめておく。 なお、Redisはデータストアなのでアプリ側の言語は問わないが、以下は主にASP.NET Core (StackExchange.Redis)、次いでPHP (Laravel/predis) とNode.js (node-redis) での経験になる。 Redis体の問題以外の、ライブラリや言語の問題も一緒に書いておくのでその認識で。 参照がボトルネックになったらレ

  • GitHub - pinterest/pymemcache: A comprehensive, fast, pure-Python memcached client.

    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

    GitHub - pinterest/pymemcache: A comprehensive, fast, pure-Python memcached client.
  • Redis Best Practices Guide 日本語訳

    Redis Best Practices Guide を参照することが多いので日語訳を作成しました https://redis.com/redis-best-practices/ 「Redisは数え切れないほどの使い方ができますが、よくある問題を解決するために採用されるパターンがいくつもあります。そこで、これらの問題を解決するためのベストプラクティスと思われる一般的なパターンを集めてみました。このコレクションは網羅的なものではありませんし、Redisの唯一の使い方を示すものでもありませんが、Redisで解決すべき問題に取り組む際の最初の一歩になればと思います。」 (序文より) おかしなところがあれば教えていただければ幸いです 金銭的サポートも受け付けています よろしくお願い致します

    Redis Best Practices Guide 日本語訳
  • ElastiCache + Redis に出てくる概念と、クラスタモードごとの違い - nyamadoriの日記

    はじめに Web サイト表示速度向上の一環として、仕事で、ElastiCache + Redis によるキャッシュ層を導入する。 導入にあたり、ElastiCache + Redis で利用するノードタイプ(インスタンスタイプ)や、制限などの事前調査が必要になった。 ElastiCache + Redis は、ノードタイプやクラスタの種類によって、機能サポートが異なり、混乱するところが多々あったため、AWS のドキュメントを参考に、分かりにくいところをまとめた。 これから導入する段階なので、AWS のドキュメントの内容以上のことは書いていません。 運用についてとか、ハマったところなどの記述はありません。 内容におかしいところがあれば教えてください 概念 実際に使うかどうかに関わらず、シャードやレプリカという用語がバンバンでてくるので、まとめる。 参考: http://docs.aws.am

    ElastiCache + Redis に出てくる概念と、クラスタモードごとの違い - nyamadoriの日記
  • ElastiCache for Redisのクラスターモードについて調べてみた | DevelopersIO

    図にするとこんな感じで整理できます。 クラスターモード無効化の場合 クラスターモードを無効化した場合、シャード数は1で固定となります。 またRedisクラスターにアクセスするためのエンドポイントとして、書き込み用途のプライマリエンドポイントと、読み取り用途のリーダーエンドポイントの2種類が提供されます クラスターモードを無効化するべき場面としては、主に以下が挙げられます。 1.エンドポイントを書き込み/読み取り用途で使い分けたい場面 クラスターモードを無効化した場合、Redisクラスターのエンドポイントを書き込み用途と読み取り用途で使い分けできます。 例えば、あるアプリケーションでは、Redisに対する読み取り回数が多く、書き込み処理にも影響が生じる恐れがあるとします。 その場合、アプリケーション側でエンドポイントを書き込み用途と読み取り用途で使い分ける事で、Redisクラスター内のノード

    ElastiCache for Redisのクラスターモードについて調べてみた | DevelopersIO
  • [実演]Redis Clusterの仕組みを完全に理解する - Qiita

    この記事は、株式会社CAM Advent Calendar 2019 16日目の記事です 前回は @tosaka07 さんによる、 最適化から見る、Swiftの / 2 と * 0.5 - Qiitaでした。 はじめに 業務でredisを使っていて、使い方を知っているだけではなくちゃんとどのように動いているかを理解したい!と思ってredis clusterについてまとめてみました! 実際にクラスターを組んでみるので、かなりわかりやすいかなーと思います! クラスターとは クラスター(Cluster)は「房」「集団」「群れ」の意味。ネットワークに接続した複数のコンピューターを連携して1つのコンピューターシステムに統合し、処理や運用を効率化するシステムのこと Redis Clusterとは redisインスタンスをクラスタリングすることができる機能 クラスター全体であるデータがどのノード(後述)

    [実演]Redis Clusterの仕組みを完全に理解する - Qiita
  • Redisについて各データ型と想定用途をまとめてみた | 丸ノ内テックブログ

    フロントエンド front end バックエンド back end アプリ開発 app インフラ infra その他 other データドリブン data driven タグ一覧 Ajax(1) Android(20) Apache(2) AR(2) benchmark(1) BigQuery(2) browsersync(1) C4(1) CakePHP(1) CentOS7(1) CI(1) CMS(3) CoreNFC(1) CraftAR(1) CSS(1) DeepLab(2) Dmitry Stogov(1) ECMAScript(1) ECMAScript6(1) ElePHPant(1) Facebook(3) FFmpeg(1) firebase(1) fluentd(1) Framework(1) GD(2) gif(2) Git(1) GLSL(5) Google A

    Redisについて各データ型と想定用途をまとめてみた | 丸ノ内テックブログ
  • RedisサーバのCPU負荷対策パターン - ゆううきブログ

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

    RedisサーバのCPU負荷対策パターン - ゆううきブログ
  • Redisの運用

    CPUUtilization 一般的には90%が閾値 Redisはシングルスレッドのため、90%/コア数が実際の閾値 4個以上のvCPUを持つノードタイプではEngineCPUUtilizationを使用する EngineCPUUtilizationはRedisエンジンスレッドのCPU使用率 SwapUsage 50 MB を超えてはいけない バックアップやフェイルオーバー時のクラスタへの書き込み操作を記録するために追加のメモリが、ノードの利用可能なメモリを超えるとSwapが使われる バックアップやフェイルオーバーを行う際、Redisはクラスタのデータが.rdbファイルに書き込まれる間、クラスタへの書き込み操作を記録するために追加のメモリを使用します。この追加のメモリ使用量がノードの利用可能なメモリを超えると、過剰なページングとSwapUsageのために処理が遅くなることがあります。このた

    Redisの運用
    knj2918
    knj2918 2023/04/06
    “一般的には90%が閾値 Redisはシングルスレッドのため、90%/コア数が実際の閾値”
  • ソーシャルアプリにおけるRedisの活用事例とトラブル事例

    2015年3月12日にヒカ☆ラボに登壇された 株式会社グリフォンの川村氏のスライド資料です。Read less

    ソーシャルアプリにおけるRedisの活用事例とトラブル事例
  • Redis 公式ドキュメント まとめ - hayashier Tech Blogs

    Redis の公式ドキュメントを一読しておこうと思い、読んでまとめてみました。( 2018/05/06 時点) ただし、Redis 4.0 については、公式ドキュメントに一部内容が含まれますが、RDB, AOF や Docker/NAT サポート辺り等、その他複数機能強化や変更点がありますので、詳細は、下記リリースノートを参照していただければと思います。 https://raw.githubusercontent.com/antirez/redis/4.0/00-RELEASENOTES 別途、Redisの機能のまとめ記事等は以下のURLを参照いただければと存じます。 Dive Deep Redis ~ 入門から実装の確認まで ~Redis / Memcached Source Code Reading – Overview –Dive Deep Redis Internals ~ GET

    Redis 公式ドキュメント まとめ - hayashier Tech Blogs
  • 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アプリケーションパターン | おそらくはそれさえも平凡な日々
  • Redisの動きを確認してみた|SHIFT Group 技術ブログ

    はじめにこんにちは、SHIFT の開発部門に所属しているKatayamaです。今期から転属になり、開発を担当していくことになりました。 現在、基的な事から学ぶ研修中です。開発部門では新しく学ぶことがたくさんあり、それらを自身の振り返りアウトプットとして発信していけたらと思います。記事が溜まったら、noteのマガジンにもまとめる予定です。 今回はRedisの動き(多重アクセスとトランザクション)について学んだことをまとめてみたいと思います。 Redisの特徴をつかむために色々試してみるRedisの準備docker-composeで作成する。 version: "3.9" services: redis: image: redis:6.2.5-alpine3.14 container_name: redis environment: TZ: Asia/Tokyo ports: - "6379

    Redisの動きを確認してみた|SHIFT Group 技術ブログ
  • redisで一度に保存するキャッシュサイズ(value)は100kb以下にしましょう - エキサイト TechBlog.

    こんばんは、エキサイト株式会社の中尾です。 今回は表題の通り、redisで一度に保存するキャッシュサイズ(value)は100kb以下が良い点について説明します。 っと言っても、memcacheでも同じです。 詳しく説明はこちらのリンクを参考にしてください。 docs.microsoft.com 簡単に説明するとシングルスレッドでインメモリデータストアであるため、そんな複雑なデータの取り扱いやサイズの大きいvalueを取り扱うとサーバーの負荷が上がります。 負荷が上がると当然他のアクセスもできなくなります。結果、アプリケーション全体に影響が出てしまいます。 そうならないために、100kb以下にキャッシュサイズ(value)を抑えるようにしましょう。 当然ながら画像データをキャッシュするなど、redisにとってよくないのでやめましょう。 どうしてもシステムの都合上、どうしようもない時がありま

    redisで一度に保存するキャッシュサイズ(value)は100kb以下にしましょう - エキサイト TechBlog.
  • ローカルRedisでアプリケーションを高速にする(Linux+PHP+DB+Redis) - Qiita

    はじめに ローカルRedisを使うと外部DB・キャッシュへの接続回数、通信回数、通信データ量を減らすことができます。 特にオートスケールでWebサーバが増減するシステムに合っていると思います。 Memcachedでも同じことができますが、ランキングやるならばRedisのsorted setだったりするし、ローカルと外部で統一した方がいいかなーということで今回はRedisでやってみました。 以前に投稿した「あるSPソーシャルゲームのチューニングメモ」のキャッシュ処理と高速化についてより細かくまとめたものです。 高速化の話をするとどうしても精神論みたいな話が多くなってしまうので、なるべく具体的なコード例を書いたつもりです。 (でも精神論も大事なので全部読んでほしぃ…) 今回はphpredisを使ってシンプルに書いたので分かりやすくなっているはず!! Redis使い分けの例 ローカルRedis

    ローカルRedisでアプリケーションを高速にする(Linux+PHP+DB+Redis) - Qiita
  • Redisチートシート(コマンド編) - Qiita

    1. 導入編 2. コマンド編 3. 設定編 概要 redis-cliの接続後に実行できるコマンドを抜粋した。 コマンドの全容は公式のリファレンスを参照のこと。 またアプリケーション(外部プログラミング言語)によってRedisを操作するためのAPI/バインディングについて調べた。 SQLと同様に、コマンドの大文字小文字を区別されない。 (対してキーは区別される。当然値も) 基的な操作 保持と取得、削除(SET / GET / SETNX / DEL) キーに対する値を設定/取得する。 GET時にキーが存在しない場合はnilが返る。

    Redisチートシート(コマンド編) - Qiita
  • キャッシュ戦略 - Amazon ElastiCache for Redis

    翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。 キャッシュ戦略 以下のトピックでは、キャッシュを設定および維持するための戦略について説明します。 キャッシュするデータとデータへのアクセスパターンに基づいて、キャッシュを入力し維持するために実装する戦略とは何か。たとえば、ゲームサイトやトレンドのニュースのランキングトップ 10 で同じ同じ戦略は使用したくないでしょう。このセクションの後半では、一般的なキャッシュのメンテナンス戦略、利点および欠点について説明します。 遅延読み込み その名前が示すようため、[遅延読み込み] は、必要なときにのみキャッシュにデータを読み込むキャッシュ戦略です。これは、以下で説明するように動作します。 Amazon ElastiCacheは、インメモリ key-value ストアで、アプリ

  • 【初心者向け】ElastiCacheのキャッシュ戦略

    みなさん、こんにちは。 サニービュー事業部の小寺です。 今日はElastiCacheのキャッシュ戦略についてです。 ■ElastiCacheとは Amazon ElastiCacheは、セットアップ、運用や拡張が簡単にできるマネージド型インメモリキャッシュサービスです。 超高速な2つのエンジン(memcachedとRedis)があります。 どの位高速なのかというと、公式サイトには「ミリ秒未満の応答時間が必要な最も要求の厳しいアプリケーション向け」との記載があり、なんと Stack Overflow 2020 Developer Survey でデベロッパーで最も投票数の多かったサービスです。 特徴は大きく分けると3つあります。 ・完全なフルマネージドサービス フルマネージドサービスなので、ハードウェア、ソフトウェアに関する運用の 時間を取られることがありません。 数クリックでサービスを始め

    knj2918
    knj2918 2022/11/29
  • Redisnoクライアント側キャッシング

  • RedisのSorted Setを利用した同点順位のランキング作成 - Qiita

    はじめに とあるサービスでランキング計算をする実装を組んでいた。ふと、アプリケーション側ではなく、Redisに任せることもできることを思い出したので、調査がてらサンプルコードを書いたので記事にまとめる。 実現したいこと スコア情報を持つデータがある。Redisを使用して同点順位によるランキングを作成したい 開発環境 Redis 4.0.11 Ruby 2.6.1p33 gem redis 4.1.2 実装方法 今回は動作検証のためRubyと redis gemを使用して実装をした。後ほどサンプルコード全文を共有する。 準備 まずは redis gemを利用してRedisに接続をする。Redisに接続したら、以降は REDIS オブジェクトを通じてRedisを操作する。 require 'redis' # Redisに接続 REDIS = Redis.new(host: 'localhost

    RedisのSorted Setを利用した同点順位のランキング作成 - Qiita