일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- c# scv
- 바르셀로나
- 그라나다
- 관심지향프로그래밍
- 아펠가모 선릉
- 코틀린
- sprintboot
- 아펠가모
- 아펠가모선릉
- db index
- http상태코드
- 코틀린 함수
- Srping AOP
- Kotlin
- 스페인
- elk
- 코프링
- 세비야
- b-tree index
- @Component
- HTTP #웹기술
- 스프링 AOP
- 스페인 준비물
- kotiln
- 400에러
- HTTP
- 본식후기
- 마드리드
- git명령어
- kopring
- Today
- Total
끄적이는 메모장
[.NET Core 2.x] NoSQL (Couchbase) 연동 본문
Couchbase와 NET Core 2.0을 연동할 필요가 있을 것 같다.
그래서 실습을 해보려고 한다.
1. couchbase net client 설치하기
> https://www.nuget.org/packages/CouchbaseNetClient/
- VS code 터미널 콘솔에서 다음 명령어로 설치해준다
dotnet add package CouchbaseNetClient --version 2.5.9 |
2. couchbase server 설치하기
> https://www.couchbase.com/downloads
- Couchbase server
> JSON 모델로서 데이터베이스의 스키마 제약 없이 쉽게 어플리케이션을 수정할 수 있음
> 고속의 데이터 입출력 처리 성능을 보장 (NoSQL DB중 매우 고성능을 가진 솔루션)
> 모바일 디바이스에 탑재 할 수 있음
> RDB에서 제공하고 있는 indexing, grouping, ordering 기능이 사용 가능함
> Memcached를 지원하고 있음
3. couchbase setting
> couchbase 관리툴 : http://localhost:8091
> ID 및 Password를 만들어 준다.
> Bucket -> ADD BUCKET / couchbase bucket을 생성 해준다. (RDB의 Table 개념)
> Security -> ADD USER (roles - bucket full access) / couchbase의 bucket에 접근하기 위한 계정 setting
> N1QL을 사용하기 위한 INDEX 만들기
4. startup.cs setting
- couchbase server 초기화
> Uri 내에 couchbase 서버 주소 > PasswordAuthenticator 내에 Security에서 설정한 username과 password using Couchbase.Configuration.Client;
using Couchbase;
using Couchbase.Authentication;
public void ConfigureServices(IServiceCollection services)
{
// add couchbase init
ClusterHelper.Initialize(new ClientConfiguration{
Servers = new List<Uri> { new Uri("couchbase://localhost")}
}, new PasswordAuthenticator("user","user123"));
|
- runtime에 호출할 config 셋팅
> Application이 멈출 때, couchbase cluster가 종료 되도록 설정 public void Configure(IApplicationBuilder app, IHostingEnvironment env,
IApplicationLifetime applicationLifetime) {
applicationLifetime.ApplicationStopped.Register(() =>
{
ClusterHelper.Close();
});
|
5. Bucket 사용하기
- controller에서 bucket 사용하기
controller.cs > bucket 이름을 통해 bucket 사용을 명시한다. using Couchbase;
using Couchbase.Core; private IBucket _bucket; public Controller()
{
_bucket = ClusterHelper.GetBucket("demo");
} |
6. N1QL을 사용하여 Query 하기
using Couchbase.N1QL; [HttpGet("couch/all")]
public IActionResult GetCouch()
{
var n1ql = @"SELECT g.*, META(g).id
FROM demo g
WHERE g.id = 1";
var query = QueryRequest.Create(n1ql);
query.ScanConsistency(ScanConsistency.RequestPlus);
var result = _bucket.Query<OpenResponse>(query);
return Ok(result.Rows);
} |
> Model 만을 이용해서 데이터를 조회, 추가, 업데이트 및 삭제할 수 있다.
_buckcet.get _bucket.Upsert _bucket.Remove |
참고
https://www.youtube.com/watch?v=kp4tpVtDMXs https://developer.couchbase.com/documentation/server/3.x/developer/dotnet-2.0/hello-couchbase.html |
'C, C++, C# > C# ASP.NET' 카테고리의 다른 글
[.NET Core 2.x] Swagger 연동 (0) | 2018.04.06 |
---|---|
[.NET Core 2.x] RabbitMQ 연동 (0) | 2018.04.06 |
[.NET Core 2.x] REST API + MySQL (0) | 2018.04.05 |
[.NET Core 2.x] VS Code + MySQL (0) | 2018.04.04 |
[.NET Core 2.x] Visual Studio Code (0) | 2018.04.04 |