問題タブ [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.
c++ - ibmemcached リンク エラー: `memcached_exist' への未定義の参照
libmemcached c/c++ クライアント バージョン (0.53) を使用してサンプル コードを記述しようとしています。
しかし、私はエラーが発生します
/tmp/ccoaToYP.o: 関数内
main': test.c:(.text+0x255): undefined reference to
memcached_exist'
誰もこの問題に遭遇しましたか? インストールされている gcc の制限により、バージョン 0.53 (基本的に任意の 1.0) よりも高いバージョンを使用できません。このコマンドは 0.53 で追加されたようです。
また、パスと ld_library_path も簡単です。
PATH
で設定し/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/sbin
ます。
LD_LIBRARY_PATH
で設定されています/home/libmemcached/lib:/usr/lib:/usr/lib64:/lib
$ nm libmemcached.so | grep -i memcached_exist 00014bc2 T _Z15memcached_existP12memcached_stPKcj 00014b06 T _Z22memcached_exist_by_keyP12memcached_stPKcjS2_j $
memcached_exist 呼び出しをコメントアウトすると、残りのコードは正常にコンパイルおよび実行されます。
ありがとうアントニー
c - Couchbase は Memcached の代わりとしてどの程度使用されますか
公式のカウチベースのドキュメントには、次のように書かれています。
「Memcached プロトコルを使用するアプリケーションが既にある場合は、すぐに Couchbase サーバーの使用を開始できます。その場合、他の memcached サーバーと同じように、アプリケーションをこのサーバーにポイントするだけで済みます。コードの変更や特別なライブラリは必要ありません。 、アプリケーションは標準の memcached サーバーに対する場合とまったく同じように動作します。クライアントがそれについて何も知らなくても、データは複製され、永続化され、クラスターは完全に透過的に拡張または縮小できます。」
libmemcached C API を使用して memcached で動作する C ベースのアプリケーションが既にあります。永続性が必要だったので (主に)、couchbase に移行したいと考えていました。前述の Couchbase の引用を見て、(Couchbase バケットを使用して) これを試してみたところ、嬉しい驚きでした。それはうまくいきました。そのために+1。
Couchbase C apiも存在することがわかりました. 以下は質問です.
- libmemcached API が Couchbase を使用するのに十分である場合、Couchbase C API は何を提供しますか?
- Couchbase サーバーの Couchbase タイプのバケットと通信するために (既存の) libmemached API を使用する (継続する) ことの欠点は何ですか?
- Couchbase C API を使用して Couchbase サーバーと通信するようにアプリケーションをアップグレードする利点は何ですか?
couchbase - memcachedはcouchbaseで使用されていますか?
私が観察したように、couchbaseはメモリにデータを保存するために内部でmemcachedサーバーを使用しています。
同じいまいましいものを使用しているため、couchbaseのmemcachedサーバーよりもmemcachedバケットの利点は何ですか。
moxi はデータを取得し、memcached に転送します。カウチベースの memcached サーバーにデータを直接送信できません。実際には、実際の memcached サーバーを使用するよりもオーバーヘッドが大きくなります。
libmemcached クライアントに使用される memcached か、couchbase の libcoucbase クライアントにも使用されます。
c++ - 複数のスレッド化されたリクエストからリモート サービスに接続する
Web サーバーと同様に、何百もの同時要求を処理する多くのスレッドを持つブースト asio アプリケーションがあります。すべてのリクエストは、memcached と redis の両方を呼び出す必要があります (それぞれ libmemcached と redispp を介して)。この状況でのベスト プラクティスは、各スレッドから redis と memcached の両方に個別に接続することですか (サーバー上のオープン ソケットを効果的に 3 倍にし、リクエストごとに 3 つ)? または、単一の memcached/redis 接続を使用して静的オブジェクトを構築し、すべてのスレッドがその単一の接続を共有できるようにする方法はありますか? このようなスレッドの安全性に関しては少し混乱しています。スレッド間ですべてを非同期にする必要がありますが、各スレッドの個々の要求をブロックします (したがって、各スレッドは線形の進行を持ち、ただし、多くのスレッドは、いつでも独自の進行状況でさまざまな場所に存在する可能性があります)。それは理にかなっていますか?
本当にありがとう!