Movatterモバイル変換


[0]ホーム

URL:


酒と泪とRubyとRailsと

Rails.cacheについて


Ruby on Railsで特定の値やクエリ結果をキャッシュするしくみとしてRails.cacheを紹介します。
この機能を使うとや有効期限を設定したり、キャッシュ内容を圧縮できます

🏈メソッド

Rails.cache.fetch

Rails.cache.fetchはキャッシュされた値を取得するメソッドです。
ブロックを渡すことで、キャッシュがなかった場合は指定されたデータをキャッシュにセットして返すことができます。

defcached_title
Rails.cache.fetch("/model/article/title/#{id}",expired_in:1.hour)do
Article.find(id).title
end
end
オプション説明
expired_inキャッシュの有効期限を設定します
forceforce: trueなら強制的に値をキャッシュします
compressデータを圧縮してキャッシュします

Rails.cache.fetch_multi

Rails.cache.fetch_multiはキャッシュから複数のキーの値を取得するメソッドです。
特にmemcachedやRedisをネットワーク経由でキャッシュ先に使う場合は、一度に複数のデータを取得することが推奨されます。

Rails.cache.write('hoge','fuga')
Rails.cache.fetch_multi('hoge','pugi')do|key|
No value#{key}
end
#=> ['hoge' => 'fuga', 'pugi' => 'No value pugi']

Rails.cache.write

Rails.cache.writeはキャッシュへの書き込みを行うメソッドです。

Rails.cache.write('city','Sapporo')
Rails.cache.read('city')#=> Sapporo

Rails.cache.exist?

Rails.cache.exist?はキャッシュの存在確認をするメソッドです。

Rails.cache.write('city','Sapporo')
Rails.cache.exist?('city')#=> true
Rails.cache.exist?('hoge')#=> false

Rails.cache.delete

Rails.cache.deleteは指定したキーのキャッシュの削除を行うメソッドです。

Rails.cache.write('city','Sapporo')
Rails.cache.delete('city')
Rails.cache.read('city')#=> nil

Rails.cache.clear

Rails.cache.deleteはすべてのキャッシュの削除を行うメソッドです。

Rails.cache.write('city','Sapporo')
Rails.cache.clear
Rails.cache.read('city')#=> nil

🎂キャッシュ先の設定

キャッシュのストア先の設定はconfig/environments/xxx.rbに環境毎に設定します。

メモリキャッシュ

:memory_storeでRubyプロセス内のメモリに保持されます。sizeでキャッシュのサイズを指定します。
(32MBがデフォルト)

config.cache_store =:memory_store, {size:64.megabytes }

ファイルキャッシュ

:file_storeでファイルシステムにキャッシュを保存します。キャッシュの保存先のパスを指定する必要があります。

config.cache_store =:file_store,'/path/to/cache/directory'

memcachedへのキャッシュ

Rails本体にバンドルされたgem「dalli」を使って
memcachedにキャッシュを行うことができます。初期化時にクラスタ内のすべてのmemcachedサーバのアドレスを指定する必要があります。

config.cache_store =:mem_cache_store, cache-1.example.com, cache-2.example.com

アドレスの指定がない場合はローカルのデフォルトポートで動作しているとみなします。

🏀参考リンク

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍

Rails/Modelバリデーションコールバック変更前後の値の確認値の保存・更新アソシエーション削除メソッドSQLの実行日付カラムの設定便利なDB関連設定読込み専用(Read Only)Concern(共通処理)クエリTipsRails/Controllerrenderレシピ集HTTPステータスシンボルIPの取得についてStrong ParametersControllerのTipsRails/ViewHAMLチートシート画像アップロードフォームS3への画像アップロードForm Objectフォームヘルパー検索可能なselectタグenum - selectタグシンプルな検索ボックス別ウィンドウ・フォームRailsいろいろi18nについてRails.cacheメール送信ロギングCapistrano3でデプロイセッション管理環境ごとのYAML設定読込xx分前の時間表記Tipsいろいろ便利ライブラリ簡単Webmock:VCRN+1対策:bullet環境変数の管理: dotenvi18nサポート: i18n-tasksLDAP:net-ldapヘッダ:secureheadersrack-mini-profileractiverecord-precountカバレッジ計測パンくずリスト+MetadataRSpecの記法自動修正アプリランキング取得Unicorn導入手順unicorn-worker-killerRSpecController SpecCapybaraとヘッドレスChromeRequest SpecAPI認証 Spec便利Tipsデザインパターン概要アブストラクトファクトリビルダファクトリメソッドアダプタコンポジットデコレータプロキシコマンドインタプリタイテレータオブザーバストラテジテンプレートメソッドRuby基礎文字列/String配列/Arrayハッシュ/Hash構造体/StructSpawn(コマンド実行)BundlerについてTipsRails 5.1へのアップデートRails 5へのアップデートrbenvバージョンアップpumaをsystemdで動かすURI.encodeとCGI.escapeURLのパラメータを変更処理時間を計測画像JPEG/PNG/GIF判定トラブルシュートNo route matches assets

[8]ページ先頭

©2009-2025 Movatter.jp