위의 Ruby 코드는 대부분 익숙하다고 해도 과언이 아닐 것입니다. 이 코드는 Ruby SDK에서 Couchbase 클러스터 내부에서 선택한 버킷으로 연결을 설정합니다. 물론 이 줄을 작성하는 방법은 여러 가지가 있습니다(예: URI와 포트를 Ruby 심볼로 지정하는 것). (:풀 => "기본", :버킷 => "내 버킷")등 여기서 제가 말씀드리고 싶은 것은 이러한 간단한 한 줄 명령어를 작성하고 선택한 버킷에 한 번만 연결하면 된다는 것입니다. 하지만 애플리케이션이 여러 버킷을 사용한다면 어떨까요? 이 글에서는 기본으로 돌아가서 다음과 같은 버킷을 설정하고 연결하는 방법을 안내해 드리겠습니다. 여러 버킷.
카우치베이스에서 여러 버킷을 사용해야 하는 이유는 무엇인가요?
카우치베이스에서 여러 버킷을 사용하는 것은 흥미로운 개념입니다. (어쨌든 저에게는요.)
한편으로는 여러 버킷을 사용하면 이점이 있지만, Couchbase의' 유연한 스키마를 사용하면 모든 문서의 스키마가 다르더라도 모든 구조의 JSON 문서를 동일한 버킷에 저장할 수 있습니다.
그러나 현재 많은 Couchbase 고객들은 애플리케이션에서 여러 개의 버킷을 사용하는 이점을 누리고 있습니다. 예를 들어, 호스팅 제공업체에서 여러 사용자가 동일한 데이터베이스 서버를 사용하도록 하려는 경우, 버킷을 비밀번호로 보호하여 한 사용자가 다른 사용자의 데이터에 액세스하지 못하도록 할 수 있습니다.
예를 들어, 서로 다른 두 개의 애플리케이션을 실행하면서 데이터를 분리하고 싶거나 데이터를 카테고리별로 나누고 싶을 때와 같이 조직적인 목적으로 여러 개의 버킷을 만드는 분들도 있습니다. 이는 모두 매우 합리적인 사용 사례이며 충분히 가능한 일입니다. 이제 여러 개의 버킷을 사용하는 이유를 알았으니, 다음과 같이 살펴보겠습니다. 방법 에 연결하여 해당 버킷을 활용할 수 있습니다.
카우치베이스에서 여러 버킷에 연결하기:
자세히 알아봅시다. 여러분의 관리자 콘솔. '버킷' 탭을 클릭하고 2개의 새 버킷, 즉 버킷1과 버킷2를 만들어 보겠습니다.

이제 데이터 버킷이 생겼으니, 루비를 작성하여 데이터 버킷에 대한 클라이언트 연결을 만들어 보겠습니다!
먼저 Libcouchbase가 설치되어 있는지 확인합니다. 그런 다음 최신 Couchbase Ruby Gem이 설치되어 있는지 확인합니다. 그런 다음 다음과 같은 루비 파일을 만듭니다. cb_connect.rb - 저는 Ruby 2.0을 사용하고 있지만 1.9 이상만 사용하시면 됩니다.
require 'couchbase'
CONFIG = {
:노드_목록 => ["localhost:8091"],
:키_접두사 => "pool_",
:pool_size => 3
}
여기서는 몇 가지 연결 구성 매개변수를 설정합니다. 노드 목록은 표준입니다. 설정 시 문서 앞에 'pool_'를 붙이도록 키 접두사를 설정하고 있습니다. 또한 pool_size를 3으로 설정합니다.
이제 스레드 안전 풀 객체를 작성하여 모든 메서드를 카우치베이스::버킷 인스턴스입니다:
서버 ||= {}
서버[버킷] ||= 시작
size = CONFIG[:pool_size]
매개변수 = CONFIG.병합(버킷 => 버킷)
카우치베이스::연결 풀.new(크기, 매개변수)
끝
끝
여기에서는 버킷에 대한 구체성이 뚜렷하게 부족하다는 것을 알 수 있습니다. 위의 구성에서는 이미 지정된 매개 변수를 사용하도록 설정했습니다. 풀_크기, 및 버킷 를 지정할 수 있습니다. 이 작은 연결 메서드를 작성함으로써 Ruby 코드 내에서 여러 버킷을 지정할 수 있습니다.
Couchbase에 대한 몇 가지 작업을 작성하여 연결 방법을 테스트해 보겠습니다:
연결("bucket2").set("bar", "foo")
스레드 = []
5.횟수 do
스레드 << 스레드.new do
연결("bucket1").get("foo")
연결("bucket2").get("bar")
끝
끝
스레드.지도 do |t|
풋 [t.object_id, t.값].join(“t“)
끝
여기서는 몇 가지 샘플 데이터를 설정하되, Set 명령 내에서 버킷 연결을 지정하고 있습니다. 그런 다음 Ruby에 내장된 스레딩을 사용하여 샘플 개체 집합에 대해 Get 작업을 수행합니다. 여기에서도 Get 명령 내에서 연결을 지정하고 있습니다.
이 코드를 작성하고 나면 관리자 UI에서 멋진 데이터 시각화를 볼 수 있을 것입니다. 마지막으로 작성한 블록은 샘플 데이터의 키를 값과 조인하여 터미널에 출력합니다.
터미널에서 실행합니다:
앞서 언급한 시각화와 출력이 표시될 것입니다:

그래서 Couchbase 내에서 ConnectionPool 속성(Ruby 1.9 이상에서만 사용 가능)을 사용하여 연결을 설정하고 운영 시점에 버킷을 지정했습니다. 이것이 바로 Couchbase Ruby 클라이언트에서 풀링을 통해 여러 버킷 연결을 설정하는 방법입니다.
전체 코드를 보려면 이 블로그에서 확인하세요, 요점 보기.
Rails를 사용하는 루비족을 위해 저는 현재 소셜 게임화된 리더보드를 기반으로 Rails에서 샘플 애플리케이션을 작성하고 있습니다. 저는 카우치베이스 모델 gem을 사용하여 Active_Record와 유사한 데이터 모델링을 할 수 있습니다. 이 앱과 오픈 소스 코드는 다음 주 내에 다른 사용법 블로그와 함께 게시될 예정입니다.
- 로빈 존슨
개발자 옹호자, 유럽
[...] 금주의 블로그 게시물: 카우치베이스와 루비의 다중 버킷 연결 [...]
안녕하세요,
멀티 버킷이 있는 카우치베이스 모델을 사용하려면 어떻게 연결해야 하나요?
루비에서 카우치베이스 모델을 사용하는데 안내해 주세요.
감사합니다.
현재 이 라이브러리는 여러 버킷에 연결하는 것을 지원하지 않습니다. 사용 사례를 좀 더 자세히 설명해 주시겠어요?
안녕하세요 세르게이 아브제예프입니다,
도와주셔서 감사합니다
모델의 모든 속성을 Couchbase에 매핑하고 싶은데, 가이드를 읽었을 때 CB의 모든 버킷에 대해 개체 json을 푸시하고 가져 오는 방법을 모르겠습니다.
그래서 저는 CB보다 더 많은 것을 알고 싶다고 말씀해주실 수 있나요?
세르게이에게 감사합니다.
좋은 하루 되세요!
HungCao