Kami sangat teruja untuk mengumumkan Ketersediaan Umum (GA) C++ SDKfor Couchbase! Keluaran ini menambah sokongan untuk bahasa C++ asli kepada set lengkap perpustakaan SDK kami yang sedia ada dalam 11 bahasa pengaturcaraan dan menandakan pencapaian penting dalam komitmen kami untuk menyediakan alatan berprestasi tinggi yang teguh untuk pembangun membina aplikasi moden dan berskala. Malah, SDK C++ ini ialah perpustakaan teras di sebalik SDK Python, NodeJS, Ruby dan PHP kami yang sedia ada dan berusaha untuk memberikan pengalaman yang konsisten, berprestasi dan cekap merentas semua bahasa pengaturcaraan ini.
C++ kekal sebagai bahasa penting bagi kebanyakan pembangun kerana prestasi, kecekapan dan kawalannya ke atas sumber sistem. Dengan memperkenalkan C++ SDK, Couchbase memperkasakan pembangun untuk memanfaatkan kelebihan ini sambil memanfaatkan sepenuhnya keupayaan NoSQL lanjutan Couchbase. Berikut ialah beberapa sebab utama mengapa keluaran ini mengubah permainan:
C++ terkenal dengan kepantasan dan pengurusan memori peringkat rendah, menjadikannya sesuai untuk aplikasi yang mempunyai prestasi kritikal. SDK C++ untuk Couchbase memastikan anda boleh membina aplikasi berprestasi tinggi tanpa mengorbankan kelajuan atau kecekapan.
SDK C++ menyediakan penyepaduan yang lancar dengan Pelayan Couchbase, membolehkan pembangun melaksanakan operasi dengan mudah seperti operasi KV, pertanyaan SQL++ dan transaksi. Penyepaduan yang ketat ini memastikan aplikasi anda boleh berskala dengan berkesan sambil mengekalkan prestasi tinggi.
SDK C++ menampilkan API idiomatik moden yang sejajar dengan piawaian C++ terkini. Ini menjadikannya bukan sahaja berkuasa tetapi juga intuitif untuk pembangun C++, mengurangkan keluk pembelajaran dan membolehkan anda mula membina aplikasi dengan cepat.
Berikut ialah beberapa ciri menonjol C++ SDK untuk Couchbase:
SDK C++ memudahkan pengurusan sambungan, membolehkan anda mewujudkan dan mengurus sambungan ke gugusan Couchbase anda dengan usaha yang minimum. Ini termasuk mengendalikan pengumpulan sambungan, pengimbangan beban dan failover, memastikan aplikasi anda kekal berdaya tahan dan berprestasi. Ini bermakna SDK boleh membaca topologi kluster anda secara automatik dan menyediakan sambungan lancar semasa perubahan topologi seperti saiz semula kluster atau naik taraf kluster. Di bawah ialah contoh kod C++ untuk disambungkan ke pangkalan data couchbase anda.
// 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(); }
SDK C++ secara asli menyokong pelaksanaan operasi nilai utama. Operasi nilai kunci adalah unik untuk couchbase dan menyediakan operasi CRUD yang sangat pantas untuk dokumen yang disimpan dalam couchbase. Di bawah ialah contoh kod C++ untuk menjalankan KV get & upsert mudah dokumen.
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();
SDK C++ menyokong pertanyaan SQL++, carian teks penuh (FTS) dan carian vektor, memberikan anda alatan berkuasa untuk melaksanakan operasi data yang kompleks. Sama ada anda perlu menjalankan pertanyaan yang sofistikated atau melakukan carian teks penuh, SDK telah membantu anda.
Di bawah ialah coretan kod untuk melaksanakan pertanyaan SQL++ mudah untuk mengambil rekod daripada koleksi syarikat penerbangan:
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"; }
Di bawah ialah coretan kod untuk melaksanakan pertanyaan FTS untuk melakukan carian teks penuh untuk "restoran yang bagus" indeks yang dibuat pada koleksi mercu tanda:
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"; }
Di bawah ialah coretan kod untuk melaksanakan pertanyaan carian vektor:
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"; }
SDK menyokong model pengaturcaraan tak segerak, membolehkan anda membina aplikasi yang responsif dan tidak menyekat. Ini amat berguna untuk aplikasi berkemampuan tinggi yang mengekalkan responsif adalah penting. Berikut ialah contoh menjalankan transaksi dalam konteks tak segerak:
std::shared_ptr<async_attempt_context> ctx) -> couchbase::error { ctx->get( collection, some_id, // do something in this transaction }
SDK C++ baharu ini termasuk sokongan untuk transaksi dan menggantikan sokongan transaksi C++ sedia ada kami dengan menambahkan lebih banyak peningkatan prestasi dan ciri. Di bawah ialah contoh coretan kod untuk membuat konteks transaksi:
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”) }
Pengendalian ralat adalah penting dalam mana-mana aplikasi, dan SDK C++, sama seperti SDK kami yang lain, menyediakan keupayaan pengendalian ralat yang komprehensif termasuk cuba semula untuk sambungan terputus, pengumpulan sambungan dan mesej ralat bermaklumat. Ini memastikan anda boleh mengendalikan dan memulihkan ralat dengan anggun, meningkatkan kestabilan dan kebolehpercayaan aplikasi anda.
Untuk membantu anda bermula dengan C++ SDK untuk Couchbase, kami telah menyediakan panduan permulaan yang terperinci di tapak web dokumentasi kami. Berikut ialah gambaran ringkas tentang cara memulakan:
Kami percaya pada kuasa pembangunan komuniti dan sumber terbuka. SDK C++ untuk Couchbase ialah sumber terbuka dan kami menggalakkan anda untuk menyumbang, memberikan maklum balas dan menyertai perbualan. Untuk sokongan, jika anda pelanggan berlesen perusahaan kami, anda boleh menghubungi melalui sokongan, jika tidak, anda boleh mengakses dokumentasi komprehensif kami, menyertai Forum Couchbase atau Couchbase Discord, atau menghubungi melalui portal sokongan kami.
Untuk mengetahui lebih lanjut, lihat tapak web dokumentasi kami. Ia menerangkan dengan lebih terperinci tentang API, terutamanya di sekitar transaksi dan operasi tak segerak serta menyediakan bahan rujukan lain dan pautan pengikatan sampel untuk anda gali lebih dalam:
Sistem pengendalian yang disokong disenaraikan di tapak web dokumentasi kami.
Selamat mengekod!
Pasukan Couchbase
Siaran Mengumumkan Ketersediaan Umum SDK C++ untuk Couchbase muncul pertama kali di Blog Couchbase.
Atas ialah kandungan terperinci Mengumumkan Ketersediaan Umum C++ SDK untuk Couchbase. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!