問題タブ [dalli]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Rails 4.1 w/ Heroku: DalliError: No server available
私は使っている:
Rails 4.1.0rc2Herokugem 'memcachier'gem 'dalli'
コンソールからキャッシュを使用すると、次のように機能します。
しかし、アプリケーションで Rails.cache.fetch を使用してキャッシュを設定し、コンソールから読み込もうとすると、これが表示されます。
しかし、アプリでこれを実行すると、毎回新しい検索が行われます。
キャッシュはローカルで機能します (フル キャッシュではありません)。
memcached/dalli を機能させるにはどうすればよいですか? これを別のアプリで動作させました。私には同じ設定のようです。
ruby-on-rails - Dalli/Memcached はキャッシングのように見えますが、開発環境ではキャッシングではありません
- レール 4.0.4
- ユニコーン
- ダリ 2.7
- Memcached 1.4.17
development.rb開発環境でキャッシュを使用するように設定されています:
奇妙なことはログにあります。それを見てください:
キャッシュフラグメントの書き込みと読み取りを行いますが、ページを更新するたびにすべての SQL を実行します! すべての更新後、ログは常に同じです。最初のロード後にフラグメントの読み取り値のみを表示するはずでした??
Dalli gem を再インストールしてみて、memcached を最新バージョンにアップグレードしました。
コンソールでデータのキャッシュとフェッチを試みると、成功します。キャッシングは本番環境でも機能します。
開発環境で SQL トランザクションを確認するために使用mini_profilerしていますが、mini_profiler ポップアップでも同じ SQL が表示されます...
アイデアはありますか?どうしたの?
ビューファイルの一部:
ruby-on-rails - Rails は、ビュー内のキャッシュされたすべてのフラグメントに対して memcached サーバーへの新しい接続を作成しますか、それとも 1 回の接続ですべてを取得しますか?
Rails 4 アプリで memcached クライアントとして dalli gem を使用しています。ビューにキャッシュされたフラグメントが複数あると、Rails が memcached サーバーからのデータの取得をどの程度効率的に処理するのか疑問に思わずにはいられませんでした。各フラグメントごとに新しい接続を作成しますか、それとも単一の接続で必要なすべてのフラグメントを取得しますか?
ruby-on-rails - Dyno を 1 から 2 に増やすと、authenticity_token エラーが発生します
Railsとherokuは初めてで、基本的なアプリを作成しました。ここ数週間、dyno を 1 つだけ使用して Heroku で遊んでいます。2 番目の dyno が関与すると認証トークンがリセットされるため、2 つに増えて CSRF エラーが発生します。少なくとも私はそう思います。しかし、私はまだ学んでいます。
Resque、Sidekiq、memcached、dalli については、ポッドキャストなどでよく耳にします。これは、複数の dyno がある理由でこのユーザー セッションを永続化する方法を理解できるように、私が行って学ぶ必要があるものですか。
これは初期の質問の続きですが、それらが関連しているかどうかはわかりません。また、Phusion パッセンジャーで走っています。
ruby-on-rails - require 'dalli' はコンソールで false を返しますが、それは gemfile にあります
https://devcenter.heroku.com/articles/memcachier#rubyに従ってください
memcachier と dalli gems を追加し、バンドル インストールを行いました
次に、コンソールを実行しました
そして私はタイプした
false を返します
理由はわかりませんが、ステージングおよび本番環境でもこれを行います