Мы рады объявить об общедоступной версии (GA) C SDK для Couchbase! Этот выпуск добавляет поддержку родного языка C к нашему существующему комплексному набору библиотек SDK на 11 языках программирования и знаменует собой важную веху в нашем стремлении предоставить разработчикам надежные и высокопроизводительные инструменты для создания современных масштабируемых приложений. Фактически, этот C SDK является основной библиотекой, лежащей в основе наших существующих SDK для Python, NodeJS, Ruby и PHP, и стремится обеспечить согласованную, производительную и эффективную работу на всех этих языках программирования.
C остается жизненно важным языком для многих разработчиков благодаря своей производительности, эффективности и контролю над системными ресурсами. Представляя C SDK, Couchbase дает разработчикам возможность использовать эти преимущества, в то же время в полной мере используя расширенные возможности Couchbase NoSQL. Вот несколько ключевых причин, почему этот выпуск меняет правила игры:
C известен своей скоростью и низкоуровневым управлением памятью, что делает его идеальным для приложений, где производительность имеет решающее значение. C SDK для Couchbase гарантирует, что вы сможете создавать высокопроизводительные приложения без ущерба для скорости и эффективности.
C SDK обеспечивает плавную интеграцию с Couchbase Server, позволяя разработчикам легко выполнять такие операции, как операции KV, SQL-запросы и транзакции. Такая тесная интеграция гарантирует эффективное масштабирование ваших приложений при сохранении высокой производительности.
C SDK имеет современный идиоматический API, соответствующий новейшим стандартам C. Это делает его не только мощным, но и интуитивно понятным для разработчиков C, сокращая время обучения и позволяя быстро приступить к созданию приложений.
Вот некоторые из выдающихся особенностей C SDK для Couchbase:
C SDK упрощает управление соединениями, позволяя вам устанавливать соединения с вашим кластером Couchbase и управлять ими с минимальными усилиями. Сюда входит обработка пула соединений, балансировка нагрузки и отработка отказа, гарантируя, что ваше приложение останется устойчивым и производительным. Это означает, что SDK может автоматически считывать топологию вашего кластера и обеспечивать плавные соединения во время изменений топологии, таких как изменение размера кластера или его обновление. Ниже приведен пример кода C для подключения к вашей базе данных Couchbase.
// 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Поддержка операций «ключ-значение» (KV)
C SDK изначально поддерживает выполнение операций «ключ-значение». Операции «ключ-значение» уникальны для Couchbase и обеспечивают очень быстрые операции CRUD для документов, хранящихся в Couchbase. Ниже приведен пример кода C для запуска простого получения и добавления документа KV.
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Поддержка расширенных запросов, поиска и векторного поиска
C SDK поддерживает запросы SQL, полнотекстовый поиск (FTS) и векторный поиск, предоставляя вам мощные инструменты для выполнения сложных операций с данными. Если вам нужно выполнить сложные запросы или полнотекстовый поиск, SDK поможет вам.
Поиск по запросу
Ниже приведен фрагмент кода для выполнения простого SQL-запроса для получения записей из коллекции авиакомпаний:
auto scope = cluster.bucket(config.bucket_name).scope(config.scope_name); auto [err, resp] = scope.query("SELECT * FROM airline LIMIT 10").get(); std::coutПолнотекстовый поиск (FTS)
Ниже приведен фрагмент кода для выполнения запроса FTS для полнотекстового поиска «хорошие рестораны» — индекс, созданный в коллекции достопримечательностей:
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<:codec::tao_json_serializer>(); std::coutВекторный поиск
Ниже приведен фрагмент кода для выполнения векторного поискового запроса:
auto scope = cluster.bucket(config.bucket_name).scope(config.scope_name); // weights could be retrieved from your llm model or openAI std::vectorweights{ 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<:codec::tao_json_serializer>(); std::cout Асинхронное программирование
SDK поддерживает модели асинхронного программирования, что позволяет создавать адаптивные неблокирующие приложения. Это особенно полезно для приложений с высокой пропускной способностью, где важно поддерживать оперативность. Вот пример выполнения транзакции в асинхронном контексте:
std::shared_ptrctx) -> couchbase::error { ctx->get( collection, some_id, // do something in this transaction } Транзакции
Этот новый C SDK включает поддержку транзакций и заменяет существующую поддержку транзакций C, добавляя дополнительные улучшения производительности и функции. Ниже приведен пример фрагмента кода для создания контекста транзакции:
std::shared_ptr<: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”) }Надежная обработка ошибок
Обработка ошибок имеет решающее значение в любом приложении, и C SDK, как и другие наши SDK, предоставляет комплексные возможности обработки ошибок, включая повторную попытку разрыва соединения, объединение пулов соединений и информативные сообщения об ошибках. Это гарантирует, что вы сможете корректно обрабатывать ошибки и восстанавливаться после них, повышая стабильность и надежность ваших приложений.
Начиная
Чтобы помочь вам начать работу с C SDK для Couchbase, мы подготовили подробное руководство по началу работы на нашем веб-сайте документации. Вот краткий обзор того, как начать:
- Установите SDK : следуйте инструкциям по установке в документации, чтобы настроить SDK в вашей среде разработки.
- Подключитесь к своему кластеру : подключитесь к своему кластеру Couchbase.
- Выполняйте операции CRUD, запускайте запросы и используйте мощные функции Couchbase.
Сообщество и поддержка
Мы верим в силу сообщества и разработку с открытым исходным кодом. C SDK для Couchbase имеет открытый исходный код, и мы призываем вас вносить свой вклад, оставлять отзывы и присоединяться к обсуждению. Если вы являетесь нашим клиентом с корпоративной лицензией, вы можете обратиться за поддержкой через службу поддержки. В противном случае вы можете получить доступ к нашей полной документации, присоединиться к форумам Couchbase или Couchbase Discord или обратиться через наш портал поддержки.
Дальнейшее чтение
Чтобы узнать больше, посетите наш сайт документации. В нем более подробно рассматривается API, особенно транзакции и асинхронные операции, а также предоставляются другие справочные материалы и ссылки на примеры привязок, которые помогут вам копнуть глубже:
- Примеры кода Couchbase C SDK
- Документация Couchbase C SDK
- Загрузите и установите Couchbase C SDK
Поддерживаемые операционные системы перечислены на нашем веб-сайте документации.
Удачного программирования!
Команда Couchbase
Пост, объявляющий об общей доступности C SDK для Couchbase, впервые появился в блоге Couchbase.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3