gate_intro
Enterprise Gate Server Introduction
엔터프라이즈 게이트 서버
엔터프라이즈 게이트 서버는 클러스터를 지원하지 않는
일반 레디스 클라이언트로 레디스 클러스터를 사용할 수 있게 해주는 서버 소프트웨어입니다.
레디스 게이트에서 설계하고 개발했습니다. Made in redisGate
I. 일반 레디스 클라이언트로 레디스 클러스터를 사용할 수 있습니다.
- 많은 프로그래밍 언어가 레디스를 지원하지만, 레디스 클러스터(Redis Cluster)를 제대로 지원하는 언어는 많지 않습니다.
- C 언어만 해도 공식 C 클라이언트인 hiredis는 클러스터를 지원하지 않습니다. 그래서 C 언어로 개발할 경우 어려움이 따릅니다.
- 클러스터를 지원하는 경우에도 기능이 부족하여 제대로 사용하기 어려운 경우가 많습니다.
- 레디스 게이트는 일반 클라이언트로 레디스 클러스터를 사용할 수 있습니다.
II. 레디스 클러스터에서 멀티 키 명령을 사용할 수 있습니다.
- 레디스 클러스터에서 MSET, MGET, DEL 같은 멀티 키 명령을 사용할 수 있습니다.
- 집합 명령에 많이 사용되는 SUNION, SINTER, ZUNIONSTORE 같은 명령도 사용할 수 있습니다.
- 두 키 사이에 값을 이동하는 SMOVE, RPOPLPUSH 같은 명령도 사용할 수 있습니다.
- RENAME 명령을 사용할 수 있습니다.
- 비트 연산에 사용되는 BITOP 명령도 사용할 수 있습니다.
- HyperLogLog 명령인 PFMERGE, PFCOUNT 명령도 사용할 수 있습니다.
- 레디스 게이트는 레디스 클러스터에서 불가능했던 멀티 키 명령을 사용할 수 있습니다.
III. 서브쿼리(subquery)를 사용할 수 있습니다.
- SET key (GET key2) -> GET, LPOP/RPOP, LRANGE, HGET 같은 명령을 스브쿼리로 사용할 수 있습니다.
- LPUSH mylist (LRANGE mylist2 0 9) -> GET, LRANGE, SUNION, ZRANGE, HGETALL 등 명령을 스브쿼리로 사용할 수 있습니다.
- SADD myset (SUNION myset1 myset2) -> GET, LRANGE, SUNION, ZRANGE, HGETALL 등 명령을 스브쿼리로 사용할 수 있습니다.
- ZADD myzset (ZRANGE myzset1 0 -1 withscores)
- HSET myhash (HMGET myhash1 field1 field2)
- 서브쿼리를 여러 개 사용할 수 있습니다. LPUSH mylist (LRANGE mylist2 0 9) (SMEMBERS myset)
일반 레디스 서버에서 클러스터로 변경해야 할 경우
- 단독(standalone) 서버를 사용하다가 사용량이 늘어서 클러스터로 변경해야 될 경우
① 적정한 클라이언트를 선정하고
② 애플리케이션을 재개발해서
③ 클러스터 상황에 맞게 테스트를 거쳐야 합니다.
이렇게 할 수 없을 경우 레디스 게이트 서버는 좋은 대안이 될 수 있습니다.
서버 쪽은 클러스터로 변경하지만 애플리케이션은 전혀 변경없이 사용할 수 있습니다. - 단독 서버로 개발했는데 마지막 단계에서 클러스터로 변경할 경우
일반 레디스 클라이언트를 사용해서 단독 서버로 개발을 완료했는데 오픈 직전 성능을 고려해서 클러스터로 변경하고자 할 경우에도 레디스 게이트 서버는 현명한 선택이 될 수 있습니다. - 멀티 키 명령을 꼭 사용해야 하는 경우 → 레디스 게이트 서버가 유일한 해답입니다.
Enterprise Gate Server Architecture
기능
- 레디스 클러스터 노드의 추가, 삭제(다운), 슬롯 이동을 자동으로 감지해서 처리합니다.
레디스 게이트 서버에 어떠한 추가 조치도 필요하지 않습니다. - 조회 명령은 복제 노드에서 처리합니다. Load balancing
복제 노드가 여러대 있을 경우 골고루(라운드 로빈 Round Robin 방식) 사용합니다.
조회수 :
Email
답글이 올라오면 이메일로 알려드리겠습니다.