OpenSource

Redis key pattern 관련

아르비스 2016. 4. 21. 08:59

우선, 기본적으로 Redis에 key / value 형태로 입력시에 key에 colon( : )을 사용하면 구분자 및 index로 사용 할 수 있습니다.

혹자는 redis에서 join을 할수 없기 때문에, 이를 colon을 통해서 대신 할 수도 있다고 이야기합니다.

 

예를 들어, 지금의 TUID 를 아래와 같이 정의하면, 현재 생성된 TUID 만의 처리도 가능합니다.

 SET TUID:fe7bxxxxxb:name "YUN"

 SET TUID:fc3xxxxxxx:name "CHIO"

 

  KEYS TUID:*  --> 2

 

 

위와 같이 key namespace에 colon( : ) 을 사용한 경우, Redis에서 아래와 같은 형태도 가능합니다.

GET user:bob:color   -> 'blue'
GET user:alice:color -> 'red'

SMEMBERS user:peter:friends -> alice, bob

SORT user:peter:friends BY NOSORT GET user:*:color   -> 'blue', 'red'
 

 

colon은 위와 같이 multi로 사용 가능합니다.

현재의 Redis에는 TUID와 Service ID만 존재합니다.

기존은 key(ID) / value(json data) 형태로, value 형태의 data에 대한 검색은 Key를 통한 방법뿐이 었습니다.

그래서 RDB 처럼 value에 대한 검색은 Key로 모든 value를 읽어와서 재검색하는 방법뿐이 었습니다.

 

하지만, 위처럼 일부 의미있는 data를 key namespace 영역으로 옮겨오면,

위 예제와 같이 Key 조합을 통해서 해당 value를 검색할 수 있을 것 같습니다.


추가로 redis의 key/value 의 max size는 각 512MB 입니다.