redis

    [Cache] EHCache 란?

    EHCache(ehcache) 는 Spring에서 간단하게 사용할 수 있는 Java기반 오픈소스 캐시 라이브러리 입니다. 보통 캐시 엔진하면 redis, memcached가 떠오르만, 이 둘과 달리 ehcache는 데몬을 가지지 않고 Spring 내부적으로 동작하여 캐싱처리를 합니다. 따라서 ehcache는 Spring Application과 라이프사이클을 함께합니다. (애플리케이션이 죽으면 같이 죽습니다) 왜 redis, memcached를 놔두고 ehcache를 사용하죠? 가장 큰 이유는 가볍고 빠르다 입니다. redis, memcached 같은 경우 우선 별도의 데몬으로 실행되야합니다. 벌써 도입시점부터 관리포인트가 늘어난것이죠. 그에비해 ehcache는 spring 내부적으로 동작하며 단순 캐시 ..

    [Redis] Redis Serializer 종류 (대표 3가지)

    이전 글에서 Redis와 Redis의 자료구조에 대해서 다뤄보았습니다. 데이터가 저장되는 여러가지 자료구조가 있었지만 아무래도 검색속도는 key/value 로 저장해서 불러오는게 가장 빠르겠죠? 하지만 우리가 개발을 하다보면 항상 단순한 하나의 value만 저장하지는 않겠죠, 아마 높은확률로 객체를 저장해야하는 순간이 오게될것입니다. 어? 저번에 자료구조중에 Hash로 저장하면 하나의 key 에 여러개 field/value로 저장할 수 있다고했죠? 그걸로 객체를 저장하면 안되나요? 가능은 합니다! 하지만 Hash 구조로 객체 저장시 실질적으로 저장된 데이터를 보면 결국 여러개의 key/value 데이터가 존재한다는 것을 확인하실 수 있습니다. 이 때문에 단순 String 구조보다 상대적으로 많은 메모리를..

    [Redis] Redis란?

    Redis란 인메모리(in-memory) 데이터 구조를 가진 저장소입니다. 네 Redis는 디스크(Disk)가 아니라 메모리(RAM)에 모든 데이터를 저장하고 조회합니다! 일반 RDB말고 인메모리 데이터 구조 저장소를 사용하는 이유는 뭔가요?? 일반적으로 RDB는 데이터를 물리적으로 디스크에 직접 쓰는 형식입니다. 이로인해 데이터가 서버에 문제가 생겨도 데이터가 직접적으로 손상이 되지 않는다는 장점이 있지만, 읽고 쓰는 과정이 메모리에서 불러오는 것에 비해 훨씬 느립니다. 따라서 빠르게 데이터를 읽고 쓰는 캐시 서버로 사용하기 위해 Redis를 사용합니다. 캐시는 한번 읽어온 데이터를 임의의 공간에 저장하여 다음에 읽을 때는 빠르게 결괏값을 받을 수 있도록 도와주는 공간입니다. 같은 요청이 여러 번 들어..