BackEnd

Railsの低レベルキャッシュを使ってみた

投稿日:2017年9月4日 更新日:

はじめに

こんにちは、tonnyです。
先日、APIにて外部からデータを取得する実装をしておりました。
このとき、同じようなデータを毎回毎回取得しに行くのもよくないと思い、簡易的ではありますが、Railsのキャッシュ機能を使用しました。

今回はそちらを備忘録的にまとめたいと思います。

環境

  • Ruby: 2.4.1
  • Ruby on Rails: 5.1.3

ドキュメント

概要については、こちらをご参照ください。
Railsのキャッシュ機能:概要

また、各メソッドについてはこちらを参照させていただきました。
今回はこの中からいくつかご紹介できれば、と思います。
ActiveSupport::Cache::Store < Object

準備

configの確認

今回はrails consoleにて確認していきます。
ただ、Development環境ではキャッシュ機能がオフになっております。
(正確には、キャッシュを取得しようとするとnullが返るようになっています。)
こちらを修正します。

もしくはtmpcaching-dev.txtというファイルを作成すれば機能します。

Production環境はこの設定はありません。

キャッシュストア

デフォルトはメモリキャッシュになります。
(デフォルト値は32MBになります。)
ファイルキャッシュにすることもできるようです。
キャッシュストア

今回はデフォルトのまま進めます。

使ってみる

#read、#write、#delete

対象のキーを読み込み、書き込み、削除を行うメソッドです。
実際に使用した感じを記載します。

こちらは基本となりますが、次の方が使いやすいのではないでしょうか?

#fetch

対象のキーに値がセットされていなければ、値を書き込み、セットされていれば、その値を読み込みます。

オプション

また、オプションもありますが、よく使うものというとexpires_inかと思います。
これは期限を設定します。
例えば、1時間を期限としたければ、下記のようになります。

#read_multi、#fetch_multi

multiがつくと、複数のキーを配列で読み込むことができます。
また、もし値がセットされていなければ、read_multiであればセットされているキーだけ、fetch_multiであれば値がセットされます。

#exist?

これは予想しやすいと思います。
そのキーが存在するかどうかです。

#clear

キャッシュを全て消すメソッドです。

 

さいごに

簡単ではありますが、まとめてみました。

同じようなデータを取得する、計算する場合などに使用してみてはいかがでしょうか?

page_footer_300rect




page_footer_300rect




-BackEnd
-

執筆者:


    • 原弘 より:

      ご指摘ありがとうございます。
      ご指摘のとおり、expires_in: が正しいものになります。
      本文も修正させていただきました!

comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

rails

deviseを使ってユーザ登録フォームを作る

1 はじめに1.1 前提条件2 deviseについて2.1 deviseとは2.2 deviseでできること3 登録処理の実装3.1 Gemのインストール3.2 deviseのインストール3.3 デフ ...

php logo

PHP入門 〜文字列と数値の操作〜

1 はじめに2 基本ルール2.1 開始と終了のタグ2.2 ホワイトスペース2.3 大文字と小文字の区別2.4 コメント2.5 変数の定義3 文字列の操作3.1 文字列の定義3.2 無駄なスペースを削除 ...

laravel logo

LaravelでのDB操作の基礎

1 はじめに2 Eloquent2.1 モデルの定義2.2 モデルの取得2.3 モデルの追加2.4 モデルの更新2.5 モデルの削除2.6 クエリスコープ3 マイグレーション3.1 マイグレーションフ ...

rails

Railsでの非同期処理とDelayed Job

1 はじめに2 Active Job2.1 Active Jobの役割2.2 ジョブを作成する2.3 ジョブをキューに登録する2.4 コールバック2.5 例外3 Delayed Job3.1 設定3. ...

rails

Shrineを使って画像をアップロードする

1 はじめに2 Shrineとは2.1 簡単な説明2.2 作者2.3 特徴3 下準備3.1 Gemを追加3.2 初期設定3.3 テーブルを作成する4 実装4.1 Uploaderの実装4.2 Mode ...

フォロー

follow us in feedly

page_side_300rect

2017年9月
« 8月 10月 »
 12
3456789
10111213141516
17181920212223
24252627282930

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。