<aside> 📼 Redis(Remote Dictionary Server)란?
</aside>
In-memory 형태의 NoSQL로써 Key-Value 쌍의 해쉬 맵 저장소.
운영중인 웹 서버에서 key-value 형태의 데이터 타입을 처리해야하고, I/O가 빈번히 발생할때 주로 사용한다
In-memory DB
Disk가 아닌 memory에 저장하기 때문에 disk I/O 작업이 발생하지 않아 속도가 빠르며, 휘발성
(휘발성이므로 서버가 다운되면 메모리에 저장되어 있던 모든 데이터가 소실될 수 있는 위험)
Disk에 저장하는 DB와의 속도 차이

ex) Redis, H2, memcached
cf) 멤캐시드랑 비교를 했을 때, 레디스는 In-Memory DB임에도 불구하고 스냅샷을 통하여 Disk에 백업 가능
<aside> 💡 Redis 사용 이유
</aside>
<aside> 👍 Redis의 장점
</aside>
<aside> ⚠️ Redis의 특징 (+단점)
</aside>
Redis는 싱글 쓰레드이기 때문에, 1번에 1개의 명령어만 실행할 수 있다.
(자주 비교되는 맴캐쉬드는 멀티 스레드 지원)
Keys(저장된 모든키를 보여주는 명령어)나 flushall(모든 데이터 삭제)등의 명령어를 사용할 때,
맴캐쉬드의 경우 1ms정도 소요되지만 레디스의 경우 100만건의 데이터 기준 1초로 엄청난 속도 차이가 있다.
즉 하나의 요청이 병목되면 그 다음 요청들이 계속 밀리기 때문에 O(N)관련 명령어를 주의해야 함.
*O(N)관련 명령어 : Keys, flushall를 포함해 FLUSHDB, Delete COlLECTIONS, Get All Collections가 있다.
큰 컬렉션의 데이터를 다 가져오는 경우 등도 주의 필요.
<aside> 🎛️ 자주 비교되는 Memcached와의 비교
</aside>