더북(TheBook)

구현 상 제약을 고려해 키를 만들어야 한다

키-값 데이터베이스 종류에 따라 제약도 다르다. 키-값 데이터베이스를 선택할 때는 어떤 제약이 있는지 고려해야 한다.

일부 키-값 데이터베이스는 키의 크기에 제약이 있다. 예를 들어 FoundationDB에서 키의 최대 크기는 10,000바이트다.

키로 사용할 수 있는 데이터 타입에 제약이 있는 경우도 있다. Riak는 키로 문자열이나 이진값만 사용할 수 있다. Redis는 키로 문자열보다 좀 더 복잡한 구조를 허용한다. Redis에서 사용할 수 있는 키의 데이터 타입은 다음과 같다.

바이너리 세이프binary safe 문자열

리스트

집합

정렬된 집합

해시

비트 배열

HyperLogLogs(한 집합에 있는 엔터티의 수를 산정하기 위한 확률적 데이터 구조)

Redis는 다양한 데이터 타입을 지원하므로 키를 생성할 때 좀 더 유연하게 키를 생성할 수 있다. cust:19873:fname처럼 엔터티 타입, 식별자, 속성을 붙여 넣는 대신 (cust, 19873, fname)와 같이 리스트를 사용할 수 있다. Redis에서 키의 최대 크기는 512MB이다. 설마 512MB 짜리 키를 사용할 일이 있을까라는 의문이 들겠지만, 이미지 같은 대용량 이진객체의 경우 필요할 수 있다.

Tip 용량이 큰 키를 사용하기 전에 키-값 데이터베이스에서 이런 키를 사용해 성능을 점검해 보고, 예상하는 수준의 성능을 내는지 확인해봐야 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.