LoginSignup
9
9

More than 5 years have passed since last update.

sinatraでのキャッシュ手段に関する個人的なメモ

Last updated at Posted at 2014-11-05

rack-cache(ライブラリ)

各アクション(とパラメータ)に対してアウトプット全体が固定的なWEBアプリであれば、
RackミドルウェアであるRack::Cacheを使うのが便利
rack-cacheライブラリはそのRack::Cacheの機能をより簡単に利用できる
memcachedとの連携も楽(memcachedクライアントライブラリであるdalliが対応している)
ページ全体のキャッシュ(ページキャッシュ)とアクション単位のキャッシュ(アクションキャッシュ)に対応
postアクションをデフォルトで新規リソース扱いしてくれる
ページの一部をキャッシュ(フラグメントキャッシュ)することには対応していない
( 将来的には対応予定、らしい => http://rtomayko.github.io/rack-cache/faq

sinatra-cache(ライブラリ)

sinatraを拡張してページキャッシュとフラグメントキャッシュを簡単に行えるようにするライブラリ
フラグメントキャッシュは最終URL(アクション)に合わせたディレクトリパスで保存される
これには難点があり、例えばブログサービスの場合、
各記事ごとに別個でまったく同じフラグメントキャッシュを保存する形となりうるため
サーバーのストレージ的には効率が悪い、という仕様
(ある程度の解消方法は提示されている)

Simple fragment caching in sinatra(ヘルパー)

sinatraにフラグメントキャッシュ機能(だけ)を追加するヘルパーソースコード
機能シンプル、コードもシンプル
キャッシュの保存先を変更しやすいため、上記sinatra-cacheのデメリットを回避できる
ソースコードもとってもわかりやすいので、カスタマイズ性高し

上記3つは全て競合せずに併用できそう

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9