問題タブ [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 - Memcache コンシステント ハッシュ、クラスター、PHP コード、Ketama など
私は終日、PHP を使用して Memcache を理解し、コーディングしようとしましたが、いくつかの点で混乱しています。私は多くの記事を読み、これに関連するほぼすべての SO の質問を調べましたが、正確な答えを見つけることができませんでした。
1) PHP で Consistent Hashed Key を作成するコードは何ですか? どのライブラリをインストールする必要があり、本当に何をする必要があるのか? 良い記事はありますか?
2) コンシステント ハッシュ キーを正常に保存したとします。コンシステント ハッシュ キーなどを使用している場合でも、いずれかのサーバーがダウンしているか、新しいサーバーを追加した場合、違いはありますか?
3) Memcached::addServer() の代わりに Memcached::addServers() を使用すると、http://ru.php.net/manual/en/memcached.addserver.php に記載されているように、Consistent Hashing の場合に違いが生じます。そうではなく、どういう意味ですか?
4) コンシステント ハッシュには上記のコードを使用するだけで十分であり、サーバーを追加/削除してもキーに違いはありませんか?
5) ケタマ図書館とは?Memcached::DISTRIBUTION_CONSISTENT がより適切に機能する場合、なぜそれを使用するのでしょうか? http://www.last.fm/user/RJ/journal/2007/04/10/rz_libketama_-_a_consistent_hashing_algo_for_memcache_clientsに従う
6) なんらかの方法でキーをハッシュする必要がありますか、それとも単にキーを提供し、残りは Memcached に処理させる必要がありますか?
できるだけ早く私の実稼働環境を理解して実装するために、あなたの本当のサポートが必要です。あなたの答えは、何をより良くコーディングする必要があるかを理解するのに役立ちます。
php - 「php_network_getaddresses: getaddrinfo に失敗しました」の意味は何ですか?
「php_network_getaddresses: getaddrinfo に失敗しました」の意味は何ですか?
memcache を使用しているときに、「"php_network_getaddresses: getaddrinfo failed" の意味は何ですか?」というメッセージが表示されました。memcache のメソッドを実行すると表示されます。
mysql - memcache_functions_mysql UDF を使用して memcache と mysql を操作する
次のパッケージをインストールしました -
- libevent-2.0.21
- memcached-1.4.17
- libmemcached-0.34
- memcached_functions_mysql_1.1
上記のすべてが正常にインストールされました。ldconfig -v コマンドの出力 (libmemcached ライブラリが含まれていることを示す部分) は次のとおりです。
しかし、memcache_functions に同梱されている install_functions.sql を使用して UDF を mysql にロードしようとすると、次のエラーがスローされます。
また、プラグイン ディレクトリの内容は次のとおりです。
mamp - MAMP Mac OX X 10.9 に memcache PECL 拡張機能をインストールする
10.9 (Mavericks) を実行している Mac の MAMP に PECL memcache 拡張機能をインストールしようとしています。MAMP 3.0 にアップグレードしたばかりで、再インストールする必要があります。
ターミナルで実行sudo pecl install memcacheしましたが、パスが詰まっているようで、 が見つかりませんphp.h。に見えるようです/Applications/MAMP/bin/php/php5.5.10/include/php/main/php.h。は/Applications/MAMP/bin/php/php5.5.10/include/存在しません。
これが私の端末ログです。他の誰かがこの問題を抱えていますか?
php - PHPでmemcacheでsetOption関数を使用する
Memcacheサーバーに接続して遊んでいるために、memcache拡張機能を使用しています。しかし今、このライブラリには存在しないが、 Memcached::setOptionという Memcached に存在する関数を使用したいと考えています。
コード全体を Memcache から Memcached に移動するのは非常に困難です。
どこでもコードを変更せずに setOption 関数の機能を使用できる方法はありますか?
php - Mavericks に memcache をインストールするには? (MAMP)
マシンに MAMP があり、プロジェクトの 1 つがFatal error: Class 'Memcache' not found.
appstore からX-Codeをインストールし、 libevent、memcached、libmemcachedをhomebrewでインストールしました。
それで..
共有拡張機能のインストール: /usr/lib/php/extensions/no-debug-non-zts-20100525/
その後、memcached.so と memcache.so を extension_folder にコピーしました。
/Applications/MAMP/bin/php/php5.5.10/lib/php/extensions/no-debug-non-zts-20121212/
私のphp.iniにextension = memcached.soを追加しました。
それでも致命的なエラーが発生します..何が問題なのですか?
php - PHP セッションが memcache に保存されない
Amazon Linux を使用して、AWS で php 5.4 を使用してアプリケーションを実行します。
PHP のバージョンは PHP 5.4.28 です。AWS リポジトリからインストールされた memcache lib は、php54-pecl-memcache-3.0.8-1.11.amzn1.x86_64 です。
PHP が /etc/php.ini を使用していることを確認しました。
設定は、memcache を使用する必要があることを示しています。
ボックスからエンドポイントとポートに telnet で接続して適切に接続できるため、インスタンスは memcached サーバーに接続できます。
私たちが試したこと:
- tcp:// を php.ini ファイルから削除しましたが、違いはありませんでした。セッションはまだファイルに保存されています。
- session.save_handler="memcache" から session.save_handler="memcached" に変更しました
- 変更を加えるたびに、httpd サーバーを停止し、再度開始します。
- サーバーの再起動も試みました
何を試しても、セッションはディスク上の /var/lib/php/sessions に保存されます。不足しているものはありますか、それとも 5.4 または AWS の既知の問題ですか?
php - Memcached / Memcache キーが期限切れにならない
Memcached では期待どおりにデータが期限切れになるようですが、キー自体は期限切れになりません。値が null になった後もキーが残っているのはなぜですか? このコードを実行すると:
http://docs.phalconphp.com/en/latest/api/Phalcon_Cache_Backend_Memcache.htmlから取得
キー $myNewRandomKey の下に配列を正常に保存できます。次に、30 秒のタイムアウトが経過した後に次のコードを実行します。
また、データは NULL ですが、キーがまだ存在していることを確認してください。ここでは、タイムアウトが期限切れになる前に入力されました。これは私には半分だけ正しいように思えます。キーもクリアされているはずです。
ただし、 $cache->delete($myNewRandomKey); を実行すると キーは完全に消去されます。一貫性がない!
結論: キーが期限切れにならない場合、または memcached にバグがある場合、別の種類の頭痛 (システム管理者の頭痛) が発生するまで、キーは時間の経過とともに成長し続けますか?
これらはバージョンですが、それが問題とは無関係であり、私の期待が間違っていることを願っています.
すべてのSO'ersに乾杯!
SL