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つは全て競合せずに併用できそう