タグ

cacheに関するtakaesuのブックマーク (20)

  • Rails.cacheの使い方、低レベルキャッシュの利用方法 | Enjoy IT Life

    特定の値やクエリ結果をキャッシュすることを低レベルキャッシュと呼びます。 今回は低レベルキャッシュを実装する際に利用されるRails.cacheについて紹介します。1 Rails.cacheについて RailsではActiveSupport::Cache::Storeを利用することでデータのキャッシュができます。 Rails.cacheとはRailsアプリケーションからActiveSupport::Cache::Storeを操作するメソッドです。 Rails.cacheによるデータ操作に関するメソッドについて Rails.cacheの主要メソッドは以下の通りです。2 以下では各メソッドについて紹介します。 Rails.cache.read readはキャッシュからデータを取得するメソッドです。 Rails.cache.read(key名) Rails.cache.write writeはキ

    Rails.cacheの使い方、低レベルキャッシュの利用方法 | Enjoy IT Life
  • CloudFront エッジキャッシュにオブジェクトを保持する時間の指定(有効期限切れ) - Amazon CloudFront

    CloudFront が別のリクエストをオリジンに転送するまでにファイルを CloudFront キャッシュに保持する期間を制御できます。この期間を短くすると、動的なコンテンツを供給できます。この期間を長くすると、ユーザー側のパフォーマンスは向上します。ファイルがエッジキャッシュから直接返される可能性が高くなるためです。期間を長くすると、オリジンの負荷も軽減されます。 一般的に CloudFront は、指定したキャッシュ保持期間が経過するまで、つまりファイルの有効期限が切れるまでエッジロケーションからファイルを提供します。ファイルの有効期限が切れると、エッジロケーションがファイルのリクエストを次に受け取ったときに、CloudFront は、リクエストをオリジンに転送し、キャッシュにファイルの最新バージョンが含まれていることを確認します。オリジンからのレスポンスは、ファイルが変更されたかど

  • Rails: 提案「コントローラから`@`ハックを消し去ろう」(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Removing the @ Hack in Rails Controllers – Eric Anderson – Medium 原文公開日: 2018/06/02 著者: Eric Anderson 週刊Railsウォッチで絶賛された記事です。Rails Wayから外れるのでRails中級以上向けですが、Rails初心者も知っておいて損はありません。 太字は訳で追加いたしました。 2018/06/14: 初版公開 2021/10/21: 更新 Rails: 提案「コントローラから@ハックを消し去ろう」(翻訳) 少し前に私が書いた記事で、Railsコントローラをメンテしやすくするために私が使っていた、伝統的でない戦略をいくつかご紹介しました。考え方そのものは今でもまったく問題ないと思っていますが、その中でもとりわけ気に入っている

    Rails: 提案「コントローラから`@`ハックを消し去ろう」(翻訳)|TechRacho by BPS株式会社
  • Railsでクエリ結果をキャッシュしてDB負荷を軽減する - Qiita

    はじめに Ruby on Railsを使ったサービス運用時に(Ruby on Railsに限った話ではありませんが)サービスの成長に連れてサイトへのアクセス増大によりDBへの負荷が原因でサイトのレスポンスが遅くなってしまうことがあります。 そのような場合の対応策の一つとしてクエリの結果をキャッシュしてDBアクセスの回数を減らして負荷を軽減するという方法があります。 この記事では簡単なサンプルを使ってクエリの結果をキャッシュする方法を紹介します。 実行環境 ruby 2.5.1 rails 5.2.1 以下のサンプルではキャッシュストアとしてredisを使用するため localhost:6379 でredisにアクセスできる状態を前提としています。 サンプルプロジェクトの準備 サンプルとしてArticle(model)を持つプロジェクトを作成します # プロジェクの作成 $ bundle e

    Railsでクエリ結果をキャッシュしてDB負荷を軽減する - Qiita
  • memcachedにおけるキャッシュシステムの Thundering Herd 問題への対策案 - blog.nomadscafe.jp

    キャッシュシステムの Thundering Herd 問題とは、 通常、キャッシュに格納されるデータは、それぞれ単一の生存時間をもっています。問題は、頻繁にアクセスされるキャッシュデータがエクスパイアした際に発生します。データがエクスパイヤした瞬間から、並行に走る複数のアプリケーションロジックがミスヒットを検知し、いずれかのプロセスがキャッシュデータを格納するまでの間、同一のリクエストが多数、バックエンドに飛んでしまうのです。 という問題。クエリが重かったりするとそれだけでシステムに致命的な負荷を与えてしまい、キャッシュがあるにも関わらずキャッシュが切れたタイミング全体が停止することも考えられます。memcachedでこの問題に対応するため、次のような手段を考えてみました。 まず、保存時に通常のキャッシュと、それよりも指定した秒数Expiresが短いキャッシュを2つmemcachedに対し

  • クラシル、不屈のキャッシュ戦略 - Kurashiru Tech Blog

    こんにちは! プロダクトマネージャーをしている奥原 (@okutaku0507) です。前までサーバーサイドのリードエンジニアをしていました。 delyの開発ブログが長らく更新されておらず、不甲斐ないです。これからは活発にdelyが取り入れている最新技術や実際にあった事例、取り入れているアーキテクチャなどを中心に発信していきたいと思っています。 久しぶりの今回は、delyが運営/開発しているレシピ動画サービスであるkurashiruの涙あり、笑いありのキャッシュ戦略について歴史と実際の事例を元に書いていきたいと考えています。最後には、僕が作成したクラシルに用いられているキャッシュ戦略をgemにしたライブラリを紹介いたします。 はじめに サーバーサイドチームはクラシルの開発から1年半程度まで、主に僕一人しかいませんでした。TVCMによる急激なユーザー数増加や新機能開発、社員100人を支える管

    クラシル、不屈のキャッシュ戦略 - Kurashiru Tech Blog
  • キャッシュについて整理 - Qiita

    キャッシュとは 使用頻度の高いデータを高速な記憶装置に蓄えておくことにより、いちいち低速な装置から読み出す無駄を省いて高速化すること。また、その際に使われる高速な記憶装置や、複製されたデータそのもののこと。 IT用語辞典 Webサイトの表示においては、一度アクセスしたページのデータを特定の場所に保存することで、次回アクセス時の表示を速くし、サーバへの無駄なリクエストを減らせるというメリットがあります。また一口にキャッシュといっても下記の2種類があるので、どちらを指しているのか(あるいは両方か)意識しておきましょう。 ブラウザのキャッシュ:そのパソコンのユーザーが見たページのデータがローカルに溜まっていく。 キャッシュサーバのキャッシュ:不特定多数のユーザーが見たページのデータがネットワーク上に溜まっていく。 キャッシュの制御方法 ✏️ HTTPレスポンスヘッダ で制御 ➡️ Cache-C

    キャッシュについて整理 - Qiita
  • ブラウザのキャッシュコントロールを正しく理解する - Qiita [キータ]

    ①ブラウザに一切、キャッシュさせたくない場合 サーバからクライアントへのHTTP応答ヘッダ → Cache-Control "no-cache" アクセス毎に内容が変わったり、サーバにアクセスしてもらわないと困るようなコンコンテンツの場合です。 スクリプト言語等で生成する動的コンテンツは、このようにした方が安全です。 例えば対象コンテンツが画像である場合、ブラウザで同じ画像のURLが含まれたHTMLを開いた場合は、 もちろんローカルにキャッシュがないので、サーバへ問い合わせを行う 条件つきリクエスト(If-Modified-Since、If-None-Match)もサーバへ送ってこない ②ブラウザにキャッシュさせるけど、変更ないか都度確認するようにしたい サーバからクライアントへのHTTP応答ヘッダ → Cache-Control "max-age=0" → Expires "Mon, 2

    ブラウザのキャッシュコントロールを正しく理解する - Qiita [キータ]
  • Amazon CloudFrontでAPI Gatewayの痒いところに手を届ける | DevelopersIO

    2016/02/05 9:30 ユースケース2 API Gatewayの対応するTLSのバージョンを修正しました。@Keisuke69さんご指摘ありがとうございます! ども、大瀧です。 Amazon API Gateway、皆さん使ってますか?Lambdaフロントエンドとして、既存APIのRESTful化&統合として様々なケースで利用できると思います。今回は、そんなAPI GatewayをCloudFrontと組み合わる目的とその注意点をご紹介します。 概要 ご存じの方もいると思いますが、そもそもAPI Gatewayは内部でCloudFrontの仕組みを利用しており、スケーラビリティやアベイラビリティの面でCloudFrontの特徴を享受しています。しかしながら、CloudFrontのフル機能をAPI Gatewayで利用できるわけではないため、場合によっては以下の図のようにAPI G

    Amazon CloudFrontでAPI Gatewayの痒いところに手を届ける | DevelopersIO
  • pythonで説明するキャッシュの凄さ - Qiita

    今回のキャッシュとは、再帰計算等を行うときの無駄な計算をpythonに存在するデコレータを使用して簡単に高速化できる、と言ったようなもの。 キャッシュについて 計算や処理によって出された結果を一時的に保存することをキャッシュという。 そのキャッシュを利用し、同じ結果を2度目以降求める場合は処理をする必要なく、保存した内容をそのまま出す。 それによって同じ処理の複数回実行がなくなり、処理の手間が減ったり、場合によってはインターネットリソースの消費を減らしたり(記事には出てこない)できる。 再帰処理をやってみる 今回はフィボナッチ数列の計算を例に説明する。 数式にすればなんか難しい感じがするが、プログラムでアルゴリズム的に書いてしまえばそれほど難しいものではないので問題ない。 早速だが、フィボナッチ数列をプログラムで書くと以下の様になる。

    pythonで説明するキャッシュの凄さ - Qiita
  • キャッシュについて整理 - Qiita

    キャッシュとは 使用頻度の高いデータを高速な記憶装置に蓄えておくことにより、いちいち低速な装置から読み出す無駄を省いて高速化すること。また、その際に使われる高速な記憶装置や、複製されたデータそのもののこと。 IT用語辞典 Webサイトの表示においては、一度アクセスしたページのデータを特定の場所に保存することで、次回アクセス時の表示を速くし、サーバへの無駄なリクエストを減らせるというメリットがあります。また一口にキャッシュといっても下記の2種類があるので、どちらを指しているのか(あるいは両方か)意識しておきましょう。 ブラウザのキャッシュ:そのパソコンのユーザーが見たページのデータがローカルに溜まっていく。 キャッシュサーバのキャッシュ:不特定多数のユーザーが見たページのデータがネットワーク上に溜まっていく。 キャッシュの制御方法 ✏️ HTTPレスポンスヘッダ で制御 ➡️ Cache-C

    キャッシュについて整理 - Qiita
  • mixi Engineers’ Blog » スマートな分散で快適キャッシュライフ

    今日は以前のエントリーで書くと述べたConsistent Hashingに関して語らせて頂こうかと思います。ただしConsistent Hashingはセミナーやカンファレンスなどでかなり語られていると思いますので、コンセプトに関しては深入りせず、実用性に着目したいと思います。 問題定義 分散されたキャッシュ環境において、典型的なレコードを適切なノードに格納するソリューションはkeyのハッシュ値に対しmodulo演算を行い、その結果を基にノードを選出する事です。ただし、このソリューションはいうまでもなく、ノード数が変わるとキャッシュミスの嵐が生じます。つまり実世界のソリューションとしては力不足です。 ウェブサイトのキャッシュシステムの基はキャッシュがヒットしなかったらデータベースにリクエストを発行し、レコードが存在したらキャッシュしてクライエントに返すという流れです。ここで問題なのが一瞬

    mixi Engineers’ Blog » スマートな分散で快適キャッシュライフ
    takaesu
    takaesu 2017/06/28
    コンシステントハッシュ ノードが増えてもキャッシュのヒット率は最小限となる方法
  • RailsアプリケーションにおけるModelキャッシュの実装 - ZOZO TECH BLOG

    こんにちは、バックエンドエンジニアのjoeです。主にAPIを担当しています。 VASILYのAPIでは、速度向上のためにModelオブジェクトをキャッシュしています。 最近、Modelキャッシュの仕組みを実装したので、その実装方法を紹介します。また、既存ライブラリとの比較についても書きたいと思います。 Modelキャッシュとは Modelキャッシュを簡単に言うと、下記の結果をキャッシュすることです。 > Item.find(1) => #<Item:0x007fdfe398a678> このように、1レコード単位のActiveRecordをキャッシュすることを記事ではModelキャッシュと呼びます。ActiveRecordをキャッシュすることで、データベースへの読み込み回数を減らし、レスポンス速度を向上させることができます。 既存ライブラリの紹介と問題点 Modelキャッシュを実現できるG

    RailsアプリケーションにおけるModelキャッシュの実装 - ZOZO TECH BLOG
    takaesu
    takaesu 2016/11/29
    自前のキャッシュ機構を構築する
  • Railsアプリを66%スピードアップ ― Railsキャッシュの完全ガイド | POSTD

    (訳注:2016/3/2、頂いた翻訳フィードバックをもとに記事を修正いたしました。) Railsアプリでのキャッシングは、「たまに夕を一緒にするけれど、当はもっと頻繁に一緒にいるべき友達」に少し似ています。パフォーマンスをまじめに考えるRailsアプリのほぼ全てで、もっとキャッシングを使えるはずですが、ほとんどのRailsアプリでは、完全にキャッシングを避けています。それでも普通は、Railsで高速なサーバ応答を達成するための唯一の道は、キャッシングの知的な利用なのです。約250msの応答時間を、簡単に50~100msに高速化できます。 定義についての注意 ― この記事は、アプリケーション層のキャッシングのみを対象としています。HTTPキャッシング(これは全く別の難物で、あなたのアプリケーションに実装する必要はありません)は、別の機会で扱いましょう。 するべきキャッシングをしない理由

    Railsアプリを66%スピードアップ ― Railsキャッシュの完全ガイド | POSTD
  • ElastiCache for Redis のバックアップとリストアができるようになった! – I'm Sei.

    これまで、ElastiCache (Redis) のバックアップをとりたいときは、EC2 上の Redis を ElastiCache のスレーブにして rdb ファイル等を取得する方法しかありませんでした。 まどろっこしくて、早く直接バックアップがとれるような機能がほしいなぁと思っていたのですが、とうとう実装されたようです! 現在はバックアップ/リストア等の操作は cache.m1.small 以上でしかできないようです。 自動スナップショットの設定日毎に自動でバックアップを作成する設定ができます。 新規クラスタに設定する通常通り Launch Cache Cluster からクラスタの作成を進めていくと、以下のような画面に進みます。 ここで Enable AutoMatic Backups で Yes を選ぶといろいろ設定できるようになります。 Backup Retention Per

    ElastiCache for Redis のバックアップとリストアができるようになった! – I'm Sei.
  • キャッシュ/逆引きDNSの構築と運用

    名前解決の速度向上に有効なのがキャッシュサーバ。だが、クライアントにもキャッシュ機能があるため、どこにどのようにキャッシュされるのかを理解していないと問題解決に手間取ることになる。(編集局) 第1回で、DNSには2種の働きがあるとお話ししました。1つは前回紹介したゾーンサーバ、もう1つは今回紹介するキャッシュサーバです。 外向きの仕事をするゾーンサーバに対し、内向きに名前解決の手段を提供するキャッシュサーバは、ユーザーにとって最も身近なDNSです。クライアントがDHCPIPアドレスを取得する際は、同じようにDNSサーバのアドレスを取得します。 /etc/resolv.confにはプロバイダや自組織のDNSサーバを指定しますが、そこに指定するのはキャッシュサーバ機能を提供するDNSのアドレスです。あらかじめ指定されたドメインの問い合わせにしか応えない(「そのドメインに権威を持っている」と表

    キャッシュ/逆引きDNSの構築と運用
    takaesu
    takaesu 2014/07/16
    キャッシュサーバの設定
  • Caching with Rails: An Overview — Ruby on Rails Guides

    This guide is an introduction to speeding up your Rails application with caching. After reading this guide, you will know: What caching is. The types of caching strategies. How to manage the caching dependencies. Solid Cache - a database-backed Active Support cache store. Other cache stores. Cache keys. Conditional GET support. 1. What is Caching?Caching means storing content generated during the

    Caching with Rails: An Overview — Ruby on Rails Guides
  • はてなブログ | 無料ブログを作成しよう

    思いは言葉に。 はてなブログは、あなたの思いや考えを残したり、 さまざまな人が綴った多様な価値観に触れたりできる場所です。

    はてなブログ | 無料ブログを作成しよう
  • Rail 3.2でcache_digestsを使ってみた - @znz blog

    まだ Rails 3.2.16 のままのアプリで cache_digests gem を使って fragment cache を導入してみました。 Rails 4.0 では標準になっているはずなので、 使い方は同じだと思います。 この投稿は Ruby on Rails Advent Calendar 2013 の8日目の記事です。 インストール まず Gemfile に以下の gem の指定を追加してインストールしました。 Gemfile:

    takaesu
    takaesu 2013/12/09
    cache_digestsはRails4ではデフォルトのようだ。fragment chacheなどの使い方。`「routes.rb」のbelongs_to に touch: true を付けて、 コメントが付いた時に post の updated_at も更新されるようにしました。`
  • とある CMS を使ったサイトに Varnish を導入した話

    Shin x blog Advent Calendar 2013 の 6 日目です。 とあるサイトに、Varnish をリバースプロキシとして導入して、半年が経過しました。 導入した経緯やその効果など書いてみたいと思います。 Varnish とは Varnish は、HTTP アクセラレータです。Web サーバのリバースプロキシとして動作し、キャッシュを生かして高いパフォーマンスを発揮するのが特徴です。また、VCL という独自の設定言語を持ち、これにより状況に応じた設定を柔軟に行うことができます。 導入の経緯 このサイトでは LAMP 構成の CMS を利用しており、インフラには AWS を利用しています。基、閲覧が中心なのですが、イベント時に多数のアクセスがあります。S3 や CloudFront も検討したのですが、コンテンツを数分おきに更新する必要があるので今回は採用しませんでした

  • 1