問題タブ [libmemcached]

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.

0 投票する
1 に答える
562 参照

memcached - libmemcached - 接続されているかどうかを確認する

memcached_st*特定のサーバーが memcached サーバーに正常に接続されているかどうかを確認する簡単な方法はありますか?

経由で接続していますが、偽のホスト名を指定するとmemcached_server_add_with_weight戻ってきます。MEMCACHED_SUCCESS同様に、 への呼び出しmemcached_last_error_errnoの直後に呼び出すと、が返されmemcached_server_add_with_weightますMEMCACHED_SUCCESS

0 投票する
2 に答える
344 参照

mysql - libmemcachedストアmysqlの結果

MYSQLの結果全体をCのlibmemcachedを介してmemcachedに保存したいのですが、これは可能ですか、それとも各行要素をmemcachedに個別に保存する必要がありますか?

0 投票する
1 に答える
616 参照

memcached - Google プロトコル バッファを使用した memcache の追加/先頭への追加

解決済み: リストに単一の SerialKey を追加しようとしました。SerialKeyList に 1 つのキーを追加すると、正常に機能します。

要素のリストとブラックリストに登録された要素のリストで構成されるリストをキャッシュに保存するために、libmemcached および Google プロトコル バッファと共に memcached を使用しています。

.proto は次のとおりです。

memcached_append() を使用して、SerialKey または SerialBlackKey のいずれかのタイプの単一要素を追加したいと考えています。1 つの SerialKey 要素 (memcached_set(SerialKeyList) を使用) でリストを初期化し、1 つの SerialBlackKey 要素を (memcached_append を使用して) 追加します。

memcached からリストを解析し、PrintDebugString() で印刷するときに得られる結果は次のとおりです。

したがって、2 つのリストが作成されますが、2 番目の要素が正しく読み取られません。

それは可能であるべきですか?Protobuf エンコーディングのドキュメントから、繰り返されるフィールドが別のフィールドに続く必要がないことを理解しているため、他のタイプのフィールドをインターリーブできるはずです。

/編集: リスト内の 1 つのタイプの要素 (SerialKey) のみで同じ問題が発生します。ここでは、SerialKey の追加の属性を使用して、ブラックリストに含まれているかどうかを判断します。原文:

0 投票する
2 に答える
808 参照

c++ - クラスターのノードの libmemcached フェイルオーバー

MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA を使用してデータを書き込むために、「c」で libmemcached を使用します。すべてのキーはすべてのクラスター ノードに沿って適切に分散されていますが、これらのいずれかをシャットダウンすると、キーは移行されません。Google で検索しても、自動的に libmemcached をセットアップする方法が明確ではありません。誰もそれについて経験がありますか?

0 投票する
2 に答える
2536 参照

php - memcached エラー 10 (「サーバー エラー」) の原因は何ですか?

PHP を使用して、次のプロセスの一部として memcached に配列を永続化しています。

  1. memcached から配列を取得する
  2. 配列の最初の項目に対して操作を実行する
  3. 操作の結果に基づいて配列を更新する
  4. memcached に配列を設定する

配列には URL が文字列として含まれています。

配列サイズが大きいと、memcached の設定操作が失敗します。ごく最近では、78175 個の URL を含む配列で失敗しました。

memcached から得られるエラーは、やや一般的なものです。

libmemcachedのドキュメントは、この特定のエラーにはほとんど役に立ちません。

私が使用しているコードは非常に簡単です。


libmemcached のドキュメントは、このエラーに対してすぐに役立つものではなく、エラー自体は理解できるほどあいまいです。

memcached エラー 10 の原因は何ですか?

0 投票する
2 に答える
2239 参照

c++ - value_length なしで libmemcached で memcached_get() を使用する

libmemcached の memcached_get() に関する質問:

ドキュメントからは、私には明らかでも可能でもないようです。データの長さを知らなくても、キーに基づいて値を取得することは可能ですか? キーの値を変更する複数のスレッドを持つことを計画しているため、以前の値の長さを保存できません。*value_lengthを NULL、0、または任意の大きな数値に設定しようとしましたが、効果はありませんでした (たとえば、プログラムがクラッシュしました)。これが null で終わる文字列で実現できることを望んでいましたが、libmemcached の内部構造がわかりません。提案、指針はありますか?thnx。

より良いドキュメント: http://dev.mysql.com/doc/refman/5.1/en/ha-memcached-interfaces-libmemcached.html#ha-memcached-interfaces-libmemcached-get

0 投票する
1 に答える
5879 参照

ubuntu - libmemcached-1.0.8 make が ubuntu lucid で失敗する

libmemcached-1.0.8ubuntu lucidでソースから作成してインストールしようとしていました。これらの手順を試しました

make コマンドがこのエラーを引き起こした

を使用してmemcachedをインストールしました

私はmemcachedがどこにあるかを確認しようとしましたwhereis memcached ..それは示しています

このライブラリを正しく作成してインストールするにはどうすればよいか教えてもらえますか?

編集:

@sarnoldの提案に従って、私は使用しました

その後

/usr/bin現在、フォルダ内に「mem」で始まる 13 個の新しい実行可能ファイルがあります。

0 投票する
4 に答える
6372 参照

django - Heroku w / DjangoのMemcached:pylibmc/memcacheifyをインストールできません

私はこれに多くの時間を費やしました、そしてそれは明らかに私の初心者の理解/スキルを超えています。django-heroku-memcacheifyをpipinstallでインストールしようとしましたが、エラーが発生します。私はすべての問題を引き起こしているpylibmcまで問題を追跡しました。エラーログの興味深い部分の1つを次に示します。

_pylibmcmodule.h:42:36:エラー:libmemcached / memcached.h:そのようなファイルまたはディレクトリはありません

これが(ほぼ)完全なトレースバックです:

だからここに取引があります

私は自分のローカル環境でそれをテストすることができませんb/c私はWindowsのがらくたで実行しています。しかし、私が読んだことから、libmemcachedすでにherokuにインストールされています。そして、私がグーグルで何も見つけることができなかったので、他の誰もpylibmcに問題を抱えているようには見えません。この投稿では、彼らは次のことについて話している:

あなたがpylibmcをロードしていることを彼らが検出した場合、彼らはあなたのためにlibmemcachedをブートストラップします

それが提供されていないか、パスが間違っているかのいずれかで、それが問題である可能性があります。どんな助けでも大歓迎です!これがうまくいかない場合は、Redisを使用する必要がありますが、これは非常に難しいようです...そのために十分に進んでいるかどうかはわかりません。

編集 は無関係かもしれませんが、settings.pyファイルの代わりにinitを含むsettingsフォルダーを使用しています。これが可能であることをherokuが常に覚えているとは限らないため、これは奇妙な動作につながる可能性があると聞いています。

編集2

何百人もの人々が問題なくherokuでmemcachedとdjangoを実行しているので、heroku-usersが何らかのハックでlibmemcachedをインストールすることになっているとは思いません。ドキュメントでは、herokuが要件ファイルでpylibmcを検出したときに、ブートストラップされているかのように説明しています。これは結論につながります:A)設定または使用しているアプリの1つに問題があるか、B) herokuが最近何かを変更し、djangoのlibmemcachedの自動ブートストラップを壊しました。heroku config:add CLEAN_VIRTUALENV = trueを使用して新規インストールを取得しようとしましたが、現在も機能していません。私はそれがAであり、誰かが同じ問題を抱えていることを望んでいます。Bならどうやって解決したらいいのかわからない。

0 投票する
1 に答える
1390 参照

macos - libmemcachedおよびPHPmemcachedライブラリ:OS Xでクラッシュ-タイムアウト?

私はHomebrewを使用してすべてのインストールを行いましたが、ここで問題が発生しています...

だから私は、何らかの理由で「memcache」モジュールと「memcached」モジ​​ュールの両方を使用するPHPアプリケーションを持っています。なんでもいい。

システムはOSXLion、10.7.4です。Apacheは、AppleがOSに同梱しているApache/2.2.21のストックです。HomebrewのPHP5.3.14を使用しています。

必要なものをすべてインストールします。

brew install libmemcached memcached php53 php53-memcache php53-memcached

httpd.confそして、物事を構成します-PHP .soファイルを指すようにApacheを設定し、memcacheおよびmemcached拡張機能をphp.ini

アプリケーションをロードします...そしてhttpdがクラッシュします!

これが私が得るクラッシュダンプです(ロングダンプ):https ://gist.github.com/3125309

httpdをbrew uninstall libmemcachedバウンスすると、アプリケーションに正常にアクセスできますが、(dur)libmemcachedが見つからないため、memcachedは実際には機能しません。

memcachedをローカルで正しく機能させたいのですが、ここで何が起こっているのかわかりません。これはPHPからの問題にすぎません。Pythonのpython-memcachedモジュールを使用して問題なくアクセスできます(ただし、libmemcachedを使用しているかどうかはわかりません)。

何かご意見は?クラッシュダンプで役立つと思われるものは何も表示されません:(

編集:ああ、行番号は役に立ちました!関連するlibmemcachedソースのブロックは次のとおりです。

それで、それはタイムアウトの問題のように聞こえますか?しかし、私のmemcachedはローカルホスト上にあります。タイムアウトしないはずです...おそらく正しいサーバーに接続しようとしていない場合を除きます。

それでも、なぜこれが完全なhttpdクラッシュを引き起こす必要があるのでしょうか。

EDIT2:SNDTIMEOとRCVTIMEOの両方を無効にして再コンパイルしましたが、今は問題なく稼働しています...それでも、A)configureスクリプトがそれらを有効にできると判断したのはなぜですか?B)httpdクラッシュが発生したのはなぜですか?

0 投票する
2 に答える
4387 参照

php - PHP の memcached 永続性が期待どおりに機能しない

PHP memcache クライアントと memcached サーバーの間で実際の永続性を有効にするために、さまざまな memcached ライブラリとプラグインのバージョンを試してみました。

問題は、既存の永続的な接続を再利用する代わりに、接続カウンターが上昇するように、依然として接続が開かれたり閉じられたりすることです。

Redhat マシンで最新のソースから memcached デーモンをコンパイルしました。バージョン memcached-1.4.14 を使用し、「#/opt/memcached/bin/memcached -vvvv」で開始しました

最新のソース バージョン memcached-2.0.1 からコンパイルした php プラグインも、最新の状態にするために libmemcached-1.0.9 に対してコンパイルしました。現在、libmemcached-1.0.10 に対してはコンパイルされません。

私のPHPスクリプトは次のようになります。

スクリプトを起動すると、出力にサーバーが追加されず、タイムアウト期間が経過した後にのみ表示されます。

しかし、接続カウンターはまだ上昇しており、クライアントが接続を作成し、サーバー側で永続的な接続が再利用されていると思います。

サーバー側では、永続性が使用されていることを示す詳細な出力が表示されます。

多くの着信接続がある高パフォーマンス環境で memcache を使用したいのですが、現在、接続量によって apache の子が強制終了されています。本当の永続性を有効にする方法はありますか?

使用ソフトウェア:

  • Red Hat Enterprise Linux Server リリース 6.2 (サンティアゴ)
  • PHP バージョン 5.3.3
  • プリフォークの Apache/2.2.15
  • Memcache サーバー 1.4.14
  • libmemcached 1.0.9
  • PHP memcached プラグイン 2.0.1