code

레디스냐, 에캐시냐?

starcafe 2023. 2. 12. 18:03
반응형

레디스냐, 에캐시냐?

다음 환경에 적합한 것은 무엇입니까?

  1. 끈기는 강요가 아니다.
  2. 여러 서버(Ehcache에서는 캐시 동기화가 필요합니다)
  3. 쓰기가 드물고 읽기가 잦습니다.
  4. 비교적 작은 데이터베이스(메모리 요건이 매우 적음).

지금 머릿속에 있는 걸 쏟아낼 거예요.제가 틀릴 수도 있어요.

Redis는 별도의 서버(?)가 필요하고 Ehcache는 로컬 캐시를 제공하므로 더 빨라야 하지만 서버 간에 캐시를 복제합니다(?).Ehcache를 사용하여 캐시 중 하나를 업데이트한 후 모든 캐시를 업데이트할 수 있습니다.

제 질문은 어떤 것이 제가 언급한 환경에 더 적합할까요?
어느 쪽이 퍼포먼스가 향상됩니까?또는 어떤 쪽이 다른 쪽을 능가할 가능성이 있는 시나리오가 있습니까?

잘 부탁드립니다.

Redis는 공유 데이터 구조이고, Ehcache는 직렬화된 데이터 개체를 저장하는 메모리 블록이라고 생각할 수 있습니다.이게 가장 큰 차이점이에요.

공유 데이터 구조로서의 Redis는 사전 정의된 데이터 구조(String, List, Set )를 한 언어로 저장하고 다른 언어로 가져올 수 있음을 의미합니다.이것은 프로젝트가 다국어(예: Java the backend side, PHP for front side)인 경우에 유용합니다.공유 캐시에 Redis를 사용할 수 있습니다.그러나 미리 정의된 데이터 구조만 저장할 수 있으며 원하는 Java 개체를 삽입할 수 없습니다.

프로젝트가 다국어가 아닌 Java뿐이라면 Ehcache가 편리한 솔루션입니다.

EhCache 확장과 관련된 문제에 직면하게 되며 페일오버 시 등을 관리하기 위한 리소스가 필요합니다.Redis는 EhCache에 비해 다음과 같은 이점을 제공합니다.

  1. 노드 검출 및 동기화를 위해 시간이 입증된 가십 프로토콜을 사용합니다.
  2. AWS ElastiCache, Azure Redis Cache 등의 완전 관리형 서비스 가용성이러한 서비스는 Redis의 완전한 자동화, 지원 및 관리를 제공하므로 개발자는 데이터베이스를 유지 보수하지 않고 애플리케이션에 집중할 수 있습니다.
  3. 대용량의 메모리를 올바르게 처리합니다(Redis는 1대의 머신으로 수백 기가바이트의 RAM으로 관리할 수 있습니다).Java와 같은 가비지 컬렉션에는 문제가 없습니다.

그리고 마지막으로 Java Developer 친화적인 Redis 클라이언트 - Redisson의 존재.
Redisson은 Redis 위에 다음과 같은 자바 친화적인 개체를 제공합니다.

  • 세트
  • 동시 맵
  • 목록.
  • 데쿠
  • 블로킹 큐
  • 블로킹 디크
  • 읽기/쓰기 잠금
  • 세마포
  • 잠그다
  • 아토믹롱
  • 카운트다운래치
  • 게시/구독
  • 실행자 서비스
  • 그리고 더 많은...

Redisson은 Map 구조에 대한 로컬 캐시를 지원하므로 콜드에서는 읽기 작업을 위해 45배의 성능을 향상시킬 수 있습니다.

다음은 Ehcache와 Redis의 자세한 기능 비교를 설명하는 기사입니다.

언급URL : https://stackoverflow.com/questions/33123633/redis-or-ehcache

반응형