cache_fuのconfについて。memcached.yml
(ちなみに全部の説明はありません。適当にピックアップしました。)
#trueにするとsessionの格納先がmemcacheになります。 sessions: trueかfalse #セッションのmemcacheサーバーを別にしたい場合は指定する。 #一緒でいい場合はfalseを指定(デフォルト) session_servers: 192.168.xxx.xxx:11211 #フラグメントキャッシュの格納先をmemcacheに切り替える。 fragments: trueかfalse #trueにすると早くなるっぽい。 #その代わりruby以外のクライアントとの互換性がなくなるっぽい。 #hashの実装を変更して実現してるみたい。 fast_hash: falseかfalse #trueにするとfast_hashするより早くなるっぽい。 #その代わりfast_hashより互換性の条件が悪くなり、 #同じruby同士でもos等のアーキテクチャが違うってもだめっぽい。 #hashの実装を単純なrubyのhashにしているみたい。 #ってことは恐らくアーキテクチャによってhashの実装が違うんでしょう。 #他アプリと連携しないで複数サーバーも同じOSを使うならこれはonにして #よいんじゃないでしょうか。 fastest_hash: trueかfalse
sessionsをtrueにした場合は下記を適用しましょう。
- application.rbのprotect_from_forgeryの:secretのコメントを外す
- deveropment.rbで有効期限を設定
- ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS.merge!-({'expires' => 30.minute })
ちなみにデフォルトで用意されてるmemcached.ymlは
:defaultsとdevelopment:の両方でsessionとfragmentsをfalseにしてあるので
:defaultsだけtrueにしても反映されません。(動かねーじゃんと一度やっちゃいました)