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 テーブルを ...

WebアプリからLINEのメッセージを送る方法

1 はじめに2 Messaging APIとは2.1 Messaging APIの仕組み2.2 Webhookイベント2.3 メッセージオブジェクトの種類2.4 料金形態3 LINE Develope ...

rails

Rails Developer Meetup に参加してきました【1日目】

1 はじめに2 発表について2.1 安全かつ高速に進めるマイクロサービス化2.2 Rails in Microservices2.3 MySQL/InnoDB の裏側2.4 H2O/mruby でつく ...

rails

Shrineをモデルに関連付けないで使用してハマったこと

1 はじめに2 アップロード時にリサイズする3 アップロード時のバリデーション4 アップロード時に古いファイルを削除する5 さいごに はじめに ShrineはRailsでのアップロードを簡単に行えるよ ...

Go言語

Go言語でテスト作成 testifyの基本的な使い方

1 はじめに2 Goテストフレームワークのスター数3 testifyについて3.1 testifyを導入する方法4 assartionについて4.1 assertion紹介4.2 ElementsMa ...

フォロー

follow us in feedly

blog-page_side_responsive

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

アプリ情報

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