問題タブ [libmemcache]
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.
php - memcachedphp拡張機能のインストール
memcached php拡張機能のインストールについて、数え切れないほどのチュートリアルをたどり、数十のフォーラムにアクセスしました。次のコマンドを使用しています。
extension=memcached.so
しかし、ファイルに行を追加すると、 php.ini
memcacheがphp情報に表示されません。ただし、memcache拡張機能(memcache.so
)は機能します。
memcached - MEMCACHED_SERVER_MARKED_DEADを処理する方法は?
コンシステントハッシュを使用して、10個のmemcacheのクラスターがあります。渡されたキーがmemcached_get()
利用できないサーバーで検索されると、MEMCACHED_SERVER_MARKED_DEAD
応答(戻り値)だけが返されます。
この場合、キーは次に使用可能なサーバーに再配布され、次の呼び出しNOTFOUND
から取得する必要があると思います。memcached_get()
ただし、まだ取得MEMCACHED_SERVER_MARKED_DEAD
しているため、新しい値を設定できません。
電話できることを発見しmemcached_behavior_set(..., MEMCACHED_BEHAVIOR_DISTRIBUTION)
ました。これによりハッシュが再配布され、希望どおりに機能します。しかし、それは良いアプローチではないと思います。それは...ですか?
php - Memcached スケーリング: キーの「グループ化」
パフォーマンスを最適化するために、(multiGet を使用して) 頻繁に取得される関連するキーを 1 つのサーバー上でグループ化することがベスト プラクティスであるため、これを行うために構築されたクライアント関数によって使用される暗黙的なメカニズムに関していくつか質問があります。
libmemcache (具体的には php-memcached) を使用して同じ目的であると想定しているものを提供するための 2 つの異なるアプローチを見てきました。最初の最も明白なアプローチは、getByKey/setByKey を使用してキーをサーバーにマップすることであり、2 つ目はオプション OPT_PREFIX_KEY を使用することです (memcached::_construct の下の php ドキュメントに投稿された簡単な例があります)。 「アイテムキーの「ドメイン」を作成するために使用されます」. 2 番目のアプローチの注意点は、インスタンスごとにしか設定できないことです。
したがって、私が完全に間違っていない限り、これら 2 つのアプローチは実際には同じ目的を果たしません。他の方法よりもアプローチを使用することの明確な利点はありますか?
そして、私がこのトピックについて話している間、私の他の質問は次のようになります: 一貫してハッシュ化されたシナリオでキーをサーバーにマッピングすることへの影響は、あるとすれば何ですか? ノードに障害が発生した場合、フリーフォーム キーは問題なく新しいサーバーに単純に再マップされると想定しています..
ありがとう!
python - libmemcached のインストール時に gcc が終了ステータス 1 で失敗する
http://code.google.com/p/python-libmemcached/の python-libmemcached の指示に従おうとすると、ステップ 3 (「python setup.py install」) で問題が発生します。
これが何を意味するのか、何をすべきなのか、私にはほとんどわかりません。私のコンプには複数のバージョンの gcc (4.0 と 4.2) があり、グーグルで十分に調べたところ、問題になる可能性があります。そうでなければ完全に失われました。
前もって感謝します。
[編集: @phihag の指示に従った後]
私は今、まったく異なるが、まだ紛らわしいエラーを受け取っています:
php - 高負荷の間、moxi は既存のキーで見つかりませんでした
私たちのプロジェクトでは、CentOS5.6+php5.2.17+libmemcached+php memcached2+moxi+membase を使用しています。
初めてアプリのエラーだと思いましたが、統計を取得して状況を確認した数週間後、moxi のハイロード中に、membase に存在するキーに見つからないキーを返す可能性があることがわかりました。
他の誰かがこの問題を抱えていましたか? 何かパッチがあるかもしれません
memcached - セグメンテーション違反を与える memcache_get()
次の単純なmemcacheコードがあります:::::
memcached_return *rc = NULL;
char *sur = "SURBHI";
memcached_set(cacheClient, "SB", strlen("SB"), sur, strlen(sur), (time_t)0, (uint32_t)0);
char *value1;
memcached_get(cacheClient, "SB", strlen("SB"), 6, (uint32_t)0, rc);
memcache_get を呼び出すと、セグメンテーション エラーが発生します。デバッガーは以下を提供しました:
/usr/lib/libmemcached.so.5 からの memcached_get_by_key () の 0 0x00007ffff79c434c
/usr/lib/libmemcached.so.5 からの memcached_get () の 1 0x00007ffff79c454f
誰かが同様の問題に直面したか、解決策について何か考えがありますか?
rubygems - Lion で memcached の gem のインストールが失敗する
Mac OS X Lion (10.7.2) で memcached gem (http://fauna.github.com/fauna/memcached/) を使いたいです。Xcode 4.2 は既にインストールされています。
Homebrew で memcached と libmemcached をインストールしました。
また、rvm (ruby バージョン マネージャー) で ruby 1.9.3-p0 を使用しています。
しかし、memcached gem (1.3.5) をインストールできません。gitsに続いてインストールログを貼り付けました。 https://gist.github.com/1395459
libmemcached の make でいくつかのエラーが発生しました。そのディレクトリを見ました。
構成は成功です。しかし、make (all) は失敗します。
libmemcached の構成と作成の完全なログはここにあります。 https://gist.github.com/1395470
memcached gem を Lion にインストールする方法を教えてください :/
追記-1
「brew link memcached」を試してみました。しかし、エラーを返します。私は何をすべきか?
追記-2
/usr/local/Cellar/memcached/ を削除してみました。「brew link memcached」を実行すると、次のエラーが発生します。
python - sasl サポート付きの pylibmc のビルド
CentOS 6 で SASL をサポートするために、最新バージョンの pylibmc (1.2.2) をビルドしようとしています。ドキュメントによると、ビルドには /usr/lib64/ にある libsasl2 が必要ですが、python のビルド プロセスはパッケージはライブラリがそこにあることを認識していないようです。
私はパッケージをビルドします: python setup.py install --with-libmemcached=/usr/local/lib --with-zlib --with-sasl2
次に、テストを実行します: python runtests.py
何か案は?
php - PHP Memcachedキーと、キャッシュを無効にするためのバージョン番号の増加-どのように?
アプリケーションにmemcachedレイヤーを追加し始めています。ここまでは順調ですね。
しかし、データの関連性を維持するために、誰かがファイルをサイトにアップロードするときに、一度に大量のキーを無効化/削除する必要があることにすぐに気付きました。
私はいくつかの読書をしました、そしてこの問題を回避する最も一般的な方法は各キーにバージョン番号を設定することであるようです、そしてユーザーがアップロードするときにキーを削除するのではなく(非常に多くの順列があるかもしれないので)あなたはバージョン番号を増やします、次にデータにアクセスしたときにキャッシュミスを引き起こします。
私はこれをコード化するためにどこから始めればよいのか分かりませんし、とにかく完全に頭を悩ませているかどうかはよくわかりません。
私のコードは現在次のようになっています:-
上記のキー変数の2つの変数は、大量のJSONを取得するgetリクエストから取得されます。(製品カタログを考えてください)。
これらの変数は、これらの変数に応じて動的にまとめられるクエリ自体も決定します。同じスクリプトから何百ものキーを生成できたとしても、最終的には、これらすべてが個々のクエリに固有のキーを提供します。
上記が明確であることを願っています。そうでない場合は、私の質問に答えるのに役立つように、ポイントを明確にするように依頼してください。
明らかに後で、キャッシュを設定するために、私はこれを使用しています:-
JSONをエンコードする直前。
だから私の質問は本当に...ユーザーがファイルをアップロードした場合にこのスクリプトによって生成された多くのキーを無効にできるように、これに何らかの形式のインクリメンタルバージョンを追加するにはどうすればよいですか?
少なくとも私を正しい方向に導いてくれた人に感謝します。
php - PHP Memcached が getDelayed() でハングアップする
テストを行っているときに、ローカル マシンで問題が発生しました。PHP コードがアクセスしようとしている memcached サーバーのプールがあります。つまり、これらはプライベート IP であるため、ローカル ボックスのコードはそれらにアクセスできません。
私が抱えている問題は、 getDelayed() 呼び出しがローカルで接続を待って 8 秒間ハングすることです。タイムアウト期間を調整する場所はありますか?
戻る前に接続を待つ必要があるのはなぜですか? 私の理解では、 getDelayed() は非同期呼び出しであるはずでしたが、タイムアウトするまで制御は関数から返されません。