Heim  >  Artikel  >  Backend-Entwicklung  >  Ankündigung der allgemeinen Verfügbarkeit des C++ SDK für Couchbase

Ankündigung der allgemeinen Verfügbarkeit des C++ SDK für Couchbase

王林
王林Original
2024-07-19 16:37:42662Durchsuche

Announcing General Availability of the C++ SDK for Couchbase

Wir freuen uns, die allgemeine Verfügbarkeit (GA) des C++ SDK für Couchbase bekannt zu geben! Diese Version erweitert unseren bestehenden umfassenden Satz an SDK-Bibliotheken in 11 Programmiersprachen um Unterstützung für die native C++-Sprache und stellt einen wichtigen Meilenstein in unserem Engagement dar, Entwicklern robuste, leistungsstarke Tools zum Erstellen moderner, skalierbarer Anwendungen bereitzustellen. Tatsächlich ist dieses C++ SDK die Kernbibliothek hinter unseren bestehenden Python-, NodeJS-, Ruby- und PHP-SDKs und ist bestrebt, ein konsistentes, leistungsfähiges und effizientes Erlebnis über alle diese Programmiersprachen hinweg zu bieten.

Warum C++ SDK?

C++ bleibt aufgrund seiner Leistung, Effizienz und Kontrolle über Systemressourcen eine wichtige Sprache für viele Entwickler. Durch die Einführung des C++ SDK ermöglicht Couchbase Entwicklern, diese Vorteile zu nutzen und gleichzeitig die erweiterten NoSQL-Funktionen von Couchbase voll auszunutzen. Hier sind einige Hauptgründe, warum diese Version bahnbrechend ist:

Leistung

C++ ist bekannt für seine Geschwindigkeit und sein niedriges Speichermanagement und eignet sich daher ideal für Anwendungen, bei denen die Leistung von entscheidender Bedeutung ist. Das C++ SDK für Couchbase stellt sicher, dass Sie Hochleistungsanwendungen erstellen können, ohne Einbußen bei Geschwindigkeit oder Effizienz.

Nahtlose Integration

Das C++ SDK bietet eine nahtlose Integration mit Couchbase Server und ermöglicht Entwicklern die einfache Durchführung von Vorgängen wie KV-Vorgängen, SQL++-Abfragen und Transaktionen. Diese enge Integration stellt sicher, dass Ihre Anwendungen effektiv skaliert werden können und gleichzeitig eine hohe Leistung beibehalten.

Modernes API-Design

Das C++ SDK verfügt über eine moderne, idiomatische API, die den neuesten C++-Standards entspricht. Dies macht es nicht nur leistungsstark, sondern auch intuitiv für C++-Entwickler, wodurch die Lernkurve verkürzt wird und Sie schnell mit der Entwicklung von Anwendungen beginnen können.

Hauptmerkmale

Hier sind einige der herausragenden Funktionen des C++ SDK für Couchbase:

Einfache Verbindungsverwaltung

Das C++ SDK vereinfacht die Verbindungsverwaltung, sodass Sie mit minimalem Aufwand Verbindungen zu Ihrem Couchbase-Cluster herstellen und verwalten können. Dazu gehört die Handhabung von Verbindungspooling, Lastausgleich und Failover, um sicherzustellen, dass Ihre Anwendung stabil und leistungsfähig bleibt. Dies bedeutet, dass das SDK die Topologie Ihres Clusters automatisch lesen und nahtlose Verbindungen bei Topologieänderungen wie Clustergrößenänderungen oder Cluster-Upgrades bereitstellen kann. Unten finden Sie ein Beispiel für C++-Code zum Herstellen einer Verbindung mit Ihrer Couchbase-Datenbank.

// Attempt to connect to the Couchbase cluster
auto [connect_err, cluster] = couchbase::cluster::connect(config.connection_string, options).get();

if (connect_err) {
    // Output the error message if connection fails
    std::cout << "Unable to connect to the cluster. Error code: " << connect_err.message() << "\n";
} else {
    auto collection = cluster.bucket(config.bucket_name)
                             .scope(config.scope_name)
                             .collection(config.collection_name);

    // d something interesting

    cluster.close().get();
}

Schlüsselwert-Betriebsunterstützung (KV).

Das C++ SDK unterstützt nativ die Durchführung von Schlüsselwertoperationen. Schlüsselwertoperationen gibt es nur bei Couchbase und ermöglichen sehr schnelle CRUD-Operationen für in Couchbase gespeicherte Dokumente. Unten finden Sie ein Beispiel für C++-Code zum Ausführen eines einfachen KV-Get & Upsert eines Dokuments.

auto collection = cluster.bucket(config.bucket_name)
                         .scope(config.scope_name)
                         .collection(config.collection_name);

// KV- get
auto record = collection.get(document_id);
std::cout << record.content_as() << "\n";

// create a new document
const std::string document_id{ "minimal_example" };
const tao::json::value basic_doc{
  { "a", 1.0 },
  { "b", 2.0 },
};

// KV 
auto [err, resp] = collection.upsert(document_id, basic_doc, {}).get();
if (err.ec()) {
  std::cout << "ec: " << err.message() << ", ";
} else {
  std::cout << "id: " << document_id << ", CAS: " << resp.cas().value() << "\n";
}

cluster.close().get();

Umfangreiche Abfrage-, Such- und Vektorsuchunterstützung

Das C++ SDK unterstützt SQL++-Abfragen, Volltextsuche (FTS) und Vektorsuche und stellt Ihnen leistungsstarke Tools zur Durchführung komplexer Datenoperationen zur Verfügung. Egal, ob Sie anspruchsvolle Abfragen ausführen oder Volltextsuchen durchführen müssen, mit dem SDK sind Sie an der richtigen Adresse.

Abfragesuche

Unten finden Sie einen Codeausschnitt zum Ausführen einer einfachen SQL++-Abfrage zum Abrufen von Datensätzen aus der Flugliniensammlung:

auto scope = cluster.bucket(config.bucket_name).scope(config.scope_name);
  auto [err, resp] = scope.query("SELECT * FROM airline LIMIT 10").get();
  std::cout << "--- Iterating as JSON objects:\n";
  for (auto row : resp.rows_as_json()) {
    std::cout << "Airline(id: " << row["airline"]["id"] << ", name: \"" << row["airline"]["name"] << "\")\n";
  }

Volltextsuche (FTS)

Unten finden Sie einen Codeausschnitt zum Ausführen einer FTS-Abfrage, um eine Volltextsuche nach „schöne Restaurants“ durchzuführen, dem Index, der für die Wahrzeichensammlung erstellt wurde:

auto scope = cluster.bucket(config.bucket_name).scope(config.scope_name);
auto [err, resp] = scope
  .search("travel-inventory-landmarks",
     couchbase::search_request(couchbase::query_string_query("nice restaurants")),
     couchbase::search_options{}.fields({ "content" }))
  .get();
for (const auto& row : resp.rows()) {
  auto fields = row.fields_as<couchbase::codec::tao_json_serializer>();
  std::cout << "score: " << row.score() << ", id: \"" << row.id() << "\", content: \"" << fields["content"].get_string() << "\"\n";
}

Vektorsuche

Unten finden Sie einen Codeausschnitt zum Ausführen einer Vektorsuchabfrage:

auto scope = cluster.bucket(config.bucket_name).scope(config.scope_name);

// weights could be retrieved from your llm model or openAI
std::vector<double> weights{ 0.1, 0.2, 0.3, 0.4 };
auto [err, resp] = scope
  .search("travel-inventory-landmarks",
    couchbase::search_request(couchbase::vector_search(
    couchbase::vector_query(field_name, weights))))
  .get();

for (const auto& row : resp.rows()) {
  auto fields = row.fields_as<couchbase::codec::tao_json_serializer>();
  std::cout << "score: " << row.score() << ", id: \"" << row.id() << "\", content: \"" << fields["content"].get_string() << "\"\n";
}

Asynchrone Programmierung

Das SDK unterstützt asynchrone Programmiermodelle, sodass Sie reaktionsfähige, nicht blockierende Anwendungen erstellen können. Dies ist besonders nützlich für Anwendungen mit hohem Durchsatz, bei denen die Aufrechterhaltung der Reaktionsfähigkeit von entscheidender Bedeutung ist. Hier ist ein Beispiel für die Ausführung einer Transaktion in einem asynchronen Kontext:

std::shared_ptr<async_attempt_context> ctx) -> couchbase::error {
  ctx->get(
    collection,
    some_id,
    // do something in this transaction
}

Transaktionen

Dieses neue C++ SDK bietet Unterstützung für Transaktionen und ersetzt unsere bestehende C++-Transaktionsunterstützung durch das Hinzufügen weiterer Leistungsverbesserungen und Funktionen. Unten finden Sie ein Beispielcode-Snippet zum Erstellen eines Transaktionskontexts:

std::shared_ptr<couchbase::transactions::attempt_context> ctx) -> couchbase::error {
  ctx.insert(collection, "doc-a", nlohmann::json({}));
  couchbase::transactions::transaction_get_result doc_a = ctx->get( collection, “doc-a”)
}

Robuste Fehlerbehandlung

Fehlerbehandlung ist in jeder Anwendung von entscheidender Bedeutung, und das C++ SDK bietet, genau wie unsere anderen SDKs, umfassende Fehlerbehandlungsfunktionen, einschließlich Wiederholungsversuchen bei Verbindungsabbrüchen, Verbindungspooling und informativen Fehlermeldungen. Dadurch wird sichergestellt, dass Sie Fehler ordnungsgemäß behandeln und beheben können, wodurch die Stabilität und Zuverlässigkeit Ihrer Anwendungen verbessert wird.

Erste Schritte

Um Ihnen den Einstieg in das C++ SDK für Couchbase zu erleichtern, haben wir auf unserer Dokumentationswebsite einen ausführlichen Leitfaden für die ersten Schritte vorbereitet. Hier ist ein kurzer Überblick, wie Sie beginnen können:

    • Installieren Sie das SDK: Befolgen Sie die Installationsanweisungen in der Dokumentation, um das SDK in Ihrer Entwicklungsumgebung einzurichten.
    • Mit Ihrem Cluster verbinden: Stellen Sie eine Verbindung zu Ihrem Couchbase-Cluster her.
    • Führen Sie CRUD-Operationen durch, führen Sie Abfragen aus und nutzen Sie die leistungsstarken Funktionen von Couchbase.

Gemeinschaft und Unterstützung

Wir glauben an die Kraft der Community und der Open-Source-Entwicklung. Das C++ SDK für Couchbase ist Open Source und wir ermutigen Sie, einen Beitrag zu leisten, Feedback zu geben und sich an der Diskussion zu beteiligen. Wenn Sie unser Kunde mit Unternehmenslizenz sind, können Sie sich über den Support an uns wenden. Andernfalls können Sie auf unsere umfassende Dokumentation zugreifen, den Couchbase-Foren oder Couchbase Discord beitreten oder sich über unser Support-Portal an uns wenden.

Weiterführende Literatur

Weitere Informationen finden Sie auf unserer Dokumentationswebsite. Es geht detaillierter auf die API ein, insbesondere auf Transaktionen und asynchrone Vorgänge, und bietet weitere Referenzmaterialien und Beispielbindungslinks, damit Sie tiefer in die Materie eintauchen können:

    • Couchbase C++ SDK-Codebeispiele
    • Couchbase C++ SDK-Dokumentation
    • Laden Sie das Couchbase C++ SDK herunter und installieren Sie es

Unterstützte Betriebssysteme sind auf unserer Dokumentationswebsite aufgeführt.

Viel Spaß beim Codieren!

Das Couchbase-Team

Der Beitrag „Ankündigung der allgemeinen Verfügbarkeit des C++ SDK für Couchbase“ erschien zuerst im Couchbase-Blog.

Das obige ist der detaillierte Inhalt vonAnkündigung der allgemeinen Verfügbarkeit des C++ SDK für Couchbase. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn