'NoSQL'에 해당되는 글 1건

  1. 2014.05.04 Java & Redis
2014.05.04 15:10


Redis 는 NoSQL (Not only SQL) 로 메모리디비.


다양한 타입을 지원


key-value


벨류에 대해 검색이 애매하기 때문에 반드시 키를 잘 정의 해주는 것이 중요하고, 외래키 개념이 없기 때문에 따로 외래키 처럼 사용할 수 있도록 따로 키 스킴을 정의해주는것도 좋아 보임. (키값에 대해 와일드카드등 검색이 용이한 기능이 있음)


보통 키 스킴은 콜론을 이용해 구분자를 둠.


ex)

blog:users:Flask - "123"


blog:comment:user:123 - "Flask"

blog:comment:text:123 - "Wow great"


이때 모든 코맨트 검색시 


keys blog:comment:*


Flask가 작성한 코맨트 검색시


get blog:users:Flask  -> 123


keys blog:comment:*:123


아 뭔가 이상한데? RDB 를 사용하다가 NoSQL을 사용하니 SQL의 편리함을 깨달을 수 있음...



이번 포스트의 중점을 이게 아니고, java 에서 객체를 redis에 넣고, 뺘고 싶을때?


보통 Mybatis 를 사용하면 그냥 sql 구문에 잘 정의 해주면 알아서 객체로 변환해주는데, 하이버네이트처럼 ORM해주는 것이 필요 했다.


그런데 처음에 무식하게 만들었던 방법이 있었는데, 

redis 에서는 해시맵 타입을 지원해서 하나의 키에 대해 맵 형식으로 데이터를 넣을 수 있었다.


명령어는 h가 붙은것으로 hget, hput 등등


따라서, json 처럼 모든 데이터들을 String 으로 변환후, 이걸 하나의 키에 대해 write 하면 될것 같았음.

그래서 자바 오브젝트를 맵 형식으로 바꾸는 유틸을 만들어 보기로 함.






이렇게 만들어 봤는데 문제점이 객체.프롭퍼티.프롭퍼티 를 해결 하지 못함..(객체.프롭퍼티 까지만 됨....아직 재귀가 익숙 하지 않은건가...ㅠㅜㅜㅠ)


그래서 이건 뭔가 좀 불안하다 해서 검색.


검색해보니 hibernate-redis 프로젝트를 개발하시는 분을 발견.

http://debop.blogspot.kr/2013/04/hibernate-redis-hibernate4-2nd-cache.html


이것 말고도 원래 Spring -data 에서 이러한 redis 말고도 여러가지 디비관련 라이브러리가 많았음. 역시 혼자 낑낑 만드는것보다 찾아보는게 좋을지도....

http://projects.spring.io/spring-data-redis/

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


티스토리 툴바