카우치베이스 서버

이벤트: 카우치베이스의 고급 버킷 액세서리를 소개합니다.

Couchbase의 고급 버킷 액세스자는 다음과 같은 기본 제공 연산자를 사용하여 고급 키-값 저장소(KV) 기능에 액세스할 수 있게 해줍니다.

기본 버킷 접근자와 핸들러에 정의된 동일한 버킷 바인딩을 활용하지만, 더 풍부한 옵션과 연산자를 사용할 수 있습니다:

  1. 만료 설정 또는 검색
  2. CAS를 통한 경쟁 조건 해결
  3. 경쟁이 치열한 인기 KV 항목 조작하기

참고 기본 버킷 액세서리 는 사용하기 훨씬 쉽고, API가 간단하며, 해당 고급 버킷 접근자보다 조금 더 빠릅니다.

카우치베이스 서버 6.6.1에서는 다음과 같은 고급 버킷 접근자가 추가되었습니다:

이 7가지 새로운 버킷 액세서를 사용하면 CAS를 직접 활용하여 경합을 처리하거나 문서 만료를 설정할 수 있습니다(또는 TTL)를 통해 데이터 서비스(또는 KV)의 이벤트 를 추가하고 분산 원자 카운터 연산을 수행합니다.

예를 들어, 업서트와 같은 작업을 할 때 기본 버킷 액세서리에 맹목적으로 의존하지 말고 다음과 같이 하세요. src_bkt[id_str] = 일부_문서를 사용하면 고급 액세스자를 통해 이벤트 함수의 JavaScript 기반 로직을 사용하여 서로 다른 소스에서 동시 변이가 발생한 키의 경합(또는 경합 가능성)을 해결할 수 있습니다.

    • 문서가 존재하지 않는 경우 다음을 사용할 수 있습니다. couchbase.insert(src_bkt, {"id: id_str}, some_doc) 를 클릭하고 반환값을 확인하여 성공 여부를 확인합니다.
    • 문서가 있는 경우 다음을 사용할 수 있습니다. couchbase.replace(src_bkt, {"id: id_str, "cas": current_cas}, some_doc) 를 입력하고 반환값이 성공 또는 CAS 불일치인지 확인합니다.

각 고급 버킷 접근자에 대한 JavaScript, 입력 변이, 출력 변이 및/또는 로그 메시지를 포함한 전체 예제를 보려면 다음을 참조하세요. 스크립틀릿: 고급 액세서리 핸들러 문서 예제 섹션에서 확인할 수 있습니다.

고급 GET: 결과 = couchbase.get(바인딩, 메타)

이 작업을 통해 버킷에서 메타데이터와 함께 문서를 읽고 후속 작업을 통해 CAS를 활용하거나 다음을 확인/수정할 수 있습니다. 만료_날짜.

기본 버킷 액세서리의 경우와 대조됩니다. GET 연산은 자바스크립트 바인딩이나 맵을 노출할 뿐입니다, var adoc = src_bkt[meta.id]반환 값은 메타데이터 없이 문서만 반환합니다.

다음은 고급의 예입니다. GET 작동합니다.

몇 가지 반환 값 예시입니다:

 

고급 삽입결과 = couchbase.insert(바인딩, 메타, 문서)

이 작업을 통해 버킷에 새 문서를 만들 수 있습니다. 지정된 키를 가진 문서가 이미 존재하면 이 작업은 실패합니다. 문서에 만료 시간(또는 TTL)을 설정할 수 있습니다.

고급 버킷 액세서와 유사한 기본 버킷 액세서 작업은 없습니다. 삽입 작업 ( src_bkt[meta.id] = adoc 는 업서트에 가깝습니다).

다음은 고급의 예입니다. 삽입 작동합니다.

 

몇 가지 반환 값 예시입니다:

 

고급 UPSERT결과 = couchbase.upsert(바인딩, 메타, 문서)

이 작업을 통해 버킷에 있는 기존 문서를 업데이트하거나, 없는 경우 지정된 키로 새 문서를 만들 수 있습니다. 이 작업에서는 CAS를 지정할 수 없습니다(자동 무시됨). 또한 문서에 만료 시간(또는 TTL)을 설정할 수 있습니다.

기본 버킷 액세서리의 경우와 대조됩니다. SET 버킷 바인딩 별칭을 통해 정의된 노출된 자바스크립트 맵만 사용하는 연산입니다. src_bkt[meta.id] = adoc. 기본 SET 연산에는 반환값(상태 및 메타데이터 없음)이 없으므로 CAS 값을 확인할 방법이 없습니다.

다음은 고급의 예입니다. UPSERT 작동합니다.

 

반환 값 예시입니다:

 

고급 교체결과 = couchbase.replace(바인딩, 메타, 문서)

이 작업은 버킷에 있는 기존 문서를 대체합니다. 지정된 키를 가진 문서가 존재하지 않으면 이 작업은 실패합니다. 이 작업은 작업을 진행하기 전에 전제 조건으로 일치해야 하는 CAS 값을 지정할 수 있습니다. 또한 문서에 만료 시간(또는 TTL)을 설정할 수 있습니다.

고급 버킷 액세서와 유사한 기본 버킷 액세서 작업은 없습니다. 교체 작업 ( src_bkt[meta.id] = adoc 는 업서트에 가깝습니다).

다음은 고급의 예입니다. 교체 작동합니다.

 

몇 가지 반환 값 예시입니다:

 

고급 삭제결과 = couchbase.delete(바인딩, 메타)

이 작업을 통해 키로 지정된 버킷에서 문서를 삭제할 수 있습니다. 선택적으로 작업을 진행하기 위한 전제 조건으로 일치시킬 CAS 값을 지정할 수 있습니다.

기본 버킷 액세서리의 경우와 대조됩니다. DEL 연산은 단순히 노출된 자바스크립트 바인딩 또는 맵을 사용하는 연산입니다, 삭제 src_bkt[메타 아이디]반환값이 없는 경우(상태 및 메타데이터 없음).

다음은 고급의 예입니다. 삭제 작동합니다.

 

몇 가지 반환 값 예시입니다:

 

고급 인크립션결과 = couchbase.increment(바인딩, 메타)

이 작업은 필드를 원자 단위로 증가시킵니다. 카운트 를 지정한 문서에 추가합니다. 문서의 구조는 아래와 같아야 합니다:

 

그리고 증분 연산은 증분 후 값을 반환합니다.

지정된 카운터 문서가 존재하지 않으면 다음을 사용하여 문서가 생성됩니다. 카운트 값을 0으로 설정하고 위에서 언급한 구조를 사용합니다. 따라서 첫 번째 반환 값은 1이 됩니다.

KV 엔진 API의 제한으로 인해 현재 이 작업은 전체 문서 카운터를 조작할 수 없습니다.

고급 버킷 액세서와 유사한 기본 버킷 액세서 작업은 없습니다. 인크립션 작동합니다.

다음은 고급의 예입니다. 인크립션 작동합니다.

 

반환 값의 예시, 다음과 같이 생성한다고 가정합니다. KEY "my_atomic_counter:1" DOC {"count": 23} 위의 이벤트 함수가 배포되면 카운트가 즉시 증가합니다:

 

고급 선언결과 = couchbase.decrement(바인딩, 메타)

이 작업은 필드를 원자 단위로 감소시킵니다. 카운트 를 지정한 문서에 추가합니다. 문서의 구조는 아래와 같아야 합니다:

 

그리고 감소 연산은 감소 후 값을 반환합니다.

지정한 카운터 문서가 존재하지 않으면 카운트 값을 0으로 설정하고 위에서 언급한 구조를 사용합니다. 결과적으로 첫 번째 반환 값은 -1이 됩니다.

KV 엔진 API의 제한으로 인해 현재 이 작업은 전체 문서 카운터를 조작할 수 없습니다.

고급 버킷 액세서와 유사한 기본 버킷 액세서 작업은 없습니다. 선언 작동합니다.

다음은 고급의 예입니다. 선언 작동합니다.

 

반환 값의 예시, 다음과 같이 생성한다고 가정합니다. KEY "my_atomic_counter:1" DOC {"count": 23} 위의 이벤트 함수가 배포되면 즉시 카운트가 감소합니다:

 

참조

 

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 Jon Strabala, 수석 제품 관리자, Couchbase

존 스트라발라는 카우치베이스 이벤트 서비스를 담당하는 수석 제품 관리자입니다. Couchbase에 입사하기 전에는 항공우주 분야의 EDA를 시작으로 오늘날 "IoT"와 "대규모 데이터"에 초점을 맞춘 엔터프라이즈 소프트웨어 구축으로 전환하는 등 20년 이상 다양한 영역에서 소프트웨어 제품을 구축했습니다. Jon은 여러 소규모 소프트웨어 컨설팅 회사에서 근무하다가 결국 자신의 회사를 설립하고 경영하게 되었습니다. 그는 압축 비트맵과 컬럼 스토어와 같은 새로운 기술에 기여하고 상용화하는 데 있어 NoSQL/NewSQL에 대한 폭넓은 경험을 가지고 있습니다. Jon은 서던 캘리포니아 대학교에서 전기공학 학사 및 컴퓨터공학 석사 학위를, 캘리포니아 대학교 어바인 캠퍼스에서 MBA를 취득했습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.