Ace-T's Blog 내 검색 [네이버 커넥트 이웃 합니다~^-^/ 요청 大 환영~~]

couchbase와 같은 키/벨류의 key design??

Language/Scala 2016.04.15 10:25
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T




오픈소스로 키/벨류의 형태의 스토리지들이 많이 있다. Redis나 couchbase등이 그 예이다. 

이러한 스토리지들에 저장을할 때 고려사항으로 key를 어떤식으로 만들어야할 지 고민이 되어진다.

왜냐하면 이러한 key들은 한정되어진 범위를 가지고 있다. couchbase의 경우는 250byte로 제한을 둔다. 

또한 이러한 key들의 무결성을 보장되어야 한다. 그렇지 않으면 데이터의 유실이 발생할 수가 있다.

그래서 생각했던 것이 Hash였다. 그러나 자바진형의 String에서 제공되어지는 Hash는 중복의 염려가 있다고 한다.

그래서 SHA-1 + Base64 Encoding(urlSafe)를 선택 하였다.

아래는 스칼라 코드이며 해당 키는 아래의 소스를 통해 "IbDNShu-PGxJtnsUVuDJLv-aJoU=" 이러한 형태로 키가 만들어진다. goood~


build.sbt에는 아래와 같이 dependencies를 추가!

libraryDependencies ++= Seq(

   "me.lessis" %% "base64" % "0.2.0"

) 


import~~

import base64.Encode 


SHA-1 + Base64 Encoding(urlSafe)

val md = java.security.MessageDigest.getInstance("SHA-1")

val keyword = {

  new String(Encode.urlSafe(md.digest("스트링~~".getBytes)))

} 


- END -


저작자 표시 비영리 변경 금지
신고

'Language > Scala' 카테고리의 다른 글

couchbase와 같은 키/벨류의 key design??  (0) 2016.04.15
(기초) 스칼라 데이터 구조(컬렉션)  (0) 2016.03.25
(기초) 스칼라 문법  (0) 2016.03.25

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

티스토리 툴바