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

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

 

さいごに

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

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

blog-page_footer_336




blog-page_footer_336




-BackEnd
-

執筆者:


    • 原弘 より:

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

comment

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

CAPTCHA


関連記事

Go言語

Go言語で使えるmigrationライブラリ

1 はじめに2 migrationライブラリ2.1 goose2.2 sql-migrate2.3 migu2.4 pop2.5 sqldef3 sqldefを使ってみる3.1 導入3.2 テーブルを ...

【Ruby Advent Calender 2017】Rubyでスクレイピングをしてみる【11日目】

1 はじめに1.1 概要2 仕様3 ソースコード4 使用したモジュール、Gem5 対象ページを取得6 XPATHから目的のものを抜き出す7 次のページのリンクを取得する8 他のサイトの記事でも試してみ ...

rails

Railsでの非同期処理とDelayed Job

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

js

Moment Timezoneを使ってJavaScriptで日付を変換する

1 はじめに2 Moment Timezone2.1 セットアップ2.2 使用例3 Moment Timezoneの機能3.1 タイムゾーンの一覧を表示する3.2 現在のタイムゾーンを表示する3.3 ...

markdownで書けるドキュメントツールのGitbookを試す

1 はじめに2 Gitbookとは3 nvm4 node.jsインストール5 Gitbook導入5.1 インストール5.2 初期化5.3 ローカルでブラウザから確認6 作成と編集6.1 見出し編集7 ...

フォロー

follow us in feedly

blog-page_side_responsive

2017年9月
 12
3456789
10111213141516
17181920212223
24252627282930

アプリ情報

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