레디스냐, 에캐시냐?
다음 환경에 적합한 것은 무엇입니까?
- 끈기는 강요가 아니다.
- 여러 서버(Ehcache에서는 캐시 동기화가 필요합니다)
- 쓰기가 드물고 읽기가 잦습니다.
- 비교적 작은 데이터베이스(메모리 요건이 매우 적음).
지금 머릿속에 있는 걸 쏟아낼 거예요.제가 틀릴 수도 있어요.
Redis는 별도의 서버(?)가 필요하고 Ehcache는 로컬 캐시를 제공하므로 더 빨라야 하지만 서버 간에 캐시를 복제합니다(?).Ehcache를 사용하여 캐시 중 하나를 업데이트한 후 모든 캐시를 업데이트할 수 있습니다.
제 질문은 어떤 것이 제가 언급한 환경에 더 적합할까요?
어느 쪽이 퍼포먼스가 향상됩니까?또는 어떤 쪽이 다른 쪽을 능가할 가능성이 있는 시나리오가 있습니까?
잘 부탁드립니다.
Redis는 공유 데이터 구조이고, Ehcache는 직렬화된 데이터 개체를 저장하는 메모리 블록이라고 생각할 수 있습니다.이게 가장 큰 차이점이에요.
공유 데이터 구조로서의 Redis는 사전 정의된 데이터 구조(String, List, Set 등)를 한 언어로 저장하고 다른 언어로 가져올 수 있음을 의미합니다.이것은 프로젝트가 다국어(예: Java the backend side, PHP for front side)인 경우에 유용합니다.공유 캐시에 Redis를 사용할 수 있습니다.그러나 미리 정의된 데이터 구조만 저장할 수 있으며 원하는 Java 개체를 삽입할 수 없습니다.
프로젝트가 다국어가 아닌 Java뿐이라면 Ehcache가 편리한 솔루션입니다.
EhCache 확장과 관련된 문제에 직면하게 되며 페일오버 시 등을 관리하기 위한 리소스가 필요합니다.Redis는 EhCache에 비해 다음과 같은 이점을 제공합니다.
- 노드 검출 및 동기화를 위해 시간이 입증된 가십 프로토콜을 사용합니다.
- AWS ElastiCache, Azure Redis Cache 등의 완전 관리형 서비스 가용성이러한 서비스는 Redis의 완전한 자동화, 지원 및 관리를 제공하므로 개발자는 데이터베이스를 유지 보수하지 않고 애플리케이션에 집중할 수 있습니다.
- 대용량의 메모리를 올바르게 처리합니다(Redis는 1대의 머신으로 수백 기가바이트의 RAM으로 관리할 수 있습니다).Java와 같은 가비지 컬렉션에는 문제가 없습니다.
그리고 마지막으로 Java Developer 친화적인 Redis 클라이언트 - Redisson의 존재.
Redisson은 Redis 위에 다음과 같은 자바 친화적인 개체를 제공합니다.
- 세트
- 동시 맵
- 목록.
- 큐
- 데쿠
- 블로킹 큐
- 블로킹 디크
- 읽기/쓰기 잠금
- 세마포
- 잠그다
- 아토믹롱
- 카운트다운래치
- 게시/구독
- 실행자 서비스
- 그리고 더 많은...
Redisson은 Map 구조에 대한 로컬 캐시를 지원하므로 콜드에서는 읽기 작업을 위해 45배의 성능을 향상시킬 수 있습니다.
다음은 Ehcache와 Redis의 자세한 기능 비교를 설명하는 기사입니다.
언급URL : https://stackoverflow.com/questions/33123633/redis-or-ehcache
'code' 카테고리의 다른 글
내장된 기능을 사용하여 MVC6의 JQuery AJAX를 사용하여 면도기 양식 제출 (0) | 2023.02.12 |
---|---|
JDBC를 사용하여 Oracle 데이터베이스에 연결하기 위한 URL 문자열 형식 (0) | 2023.02.12 |
WooCommerce: 가변 제품을 사용하여 프로그래밍 방식으로 주문 작성 (0) | 2023.02.08 |
ng-repeat 내에서 ng-click 시 숨겨진 div 표시 (0) | 2023.02.08 |
"Unparseable date: 13028677828"이 서버로부터 받은 밀리초 형식의 날짜를 Gson으로 역직렬화하려고 합니다. (0) | 2023.02.08 |