私は長い間グーグルで検索してきましたが、まだ解決策が見つかりません。Rails 3.2 と Dalli gem を memcached 1.4.14 で使用しています。
Dalli/Memcached をセッション ストアとして使用したいのですが、その方法がわかりません。現在、Dalli キャッシュは従来のキャッシュのように機能しますが、セッション キャッシュとは異なります。新しい Rails アプリを作成し、Dalli を Gemfile に追加しました。
gem 'dalli'
開発環境と本番環境では、Dalli をキャッシュ ストアとして設定します。
config.cache_store = :dalli_store
これは の内容ですinitializers/session_store.rb
:
require 'action_dispatch/middleware/session/dalli_store'
Rails.application.config.session_store :dalli_store, :memcache_server => ['127.0.0.1'], :namespace => 'sessions', :key => '_session', :expire_after => 30.minutes
Myooo
インスタンスをリストして作成するメソッドに追加したモデルを作成します。
def self.index_c
a = Rails.cache.read(:myooo_index)
if a.nil?
puts '--->>> load again'
a = Rails.cache.write(:myooo_index, Myooo.all, expires_in: 5.seconds)
else
puts '--->>> using cache'
end
return Rails.cache.read(:myooo_index)
end
def self.create_c(myooo_object)
a = Rails.cache.read(:myooo_create)
if a.nil?
a = Rails.cache.write(:myooo_create, myooo_object, expires_in: 10.minutes)
end
return Rails.cache.read(:myooo_create)
end
コントローラーでは、キャッシュにアクセスしようとします。インデックス アクションで:
@myooos = Myooo.index_c
そして作成アクションで:
@myooo = Myooo.new(params[:myooo])
Myooo.create_c(@myooo)
奇妙なスクリプトであることはわかっていますが、セッション キャッシュをどのように処理し、実際のプロジェクトで使用するのかを理解する必要があります。私はサーバー アウトライン コンソールで多くの時間を費やし、何が起こっているのかを理解しようと多くの書き込みを行いました。キャッシュは、セッション キャッシュではなく、従来のキャッシュのように機能するようです。
お役に立てれば幸いです(ps:明けましておめでとうございます):)