구현 상 제약을 고려해 키를 만들어야 한다
키-값 데이터베이스 종류에 따라 제약도 다르다. 키-값 데이터베이스를 선택할 때는 어떤 제약이 있는지 고려해야 한다.
일부 키-값 데이터베이스는 키의 크기에 제약이 있다. 예를 들어 FoundationDB에서 키의 최대 크기는 10,000바이트다.
키로 사용할 수 있는 데이터 타입에 제약이 있는 경우도 있다. Riak는 키로 문자열이나 이진값만 사용할 수 있다. Redis는 키로 문자열보다 좀 더 복잡한 구조를 허용한다. Redis에서 사용할 수 있는 키의 데이터 타입은 다음과 같다.
• 바이너리 세이프binary safe 문자열
• 리스트
• 집합
• 정렬된 집합
• 해시
• 비트 배열
• HyperLogLogs(한 집합에 있는 엔터티의 수를 산정하기 위한 확률적 데이터 구조)
Redis는 다양한 데이터 타입을 지원하므로 키를 생성할 때 좀 더 유연하게 키를 생성할 수 있다. cust:19873:fname처럼 엔터티 타입, 식별자, 속성을 붙여 넣는 대신 (cust, 19873, fname)와 같이 리스트를 사용할 수 있다. Redis에서 키의 최대 크기는 512MB이다. 설마 512MB 짜리 키를 사용할 일이 있을까라는 의문이 들겠지만, 이미지 같은 대용량 이진객체의 경우 필요할 수 있다.
Tip 용량이 큰 키를 사용하기 전에 키-값 데이터베이스에서 이런 키를 사용해 성능을 점검해 보고, 예상하는 수준의 성능을 내는지 확인해봐야 한다.