Redis
개요
- 영구적으로 데이터를 보관하기 위해서는 Storage에 저장해야함
- 좀 더 빠르게 가져올 수 있도록 Main Memory 넣고 싶다.
개념
- Remote dictionary sever
- 외부 + HashMap(Key - Value) + 서버
- 외부에서 키-값으로 저장하는 서버
- 다양한 자료구조를 제공함
- 사용 이유
- DB보다 더 빠르고 더 자주 접근하지만 덜 바뀌는 데이터를 저장해놓자
자료구조
- String
- List
- Set
- Sorted Set(Tree Set)
주의사항
- Java의 자료구조를 안 쓰는 이유
- 서버가 여러대인 경우 Consistency 문제가 생김
- 세션이 각각 다른 서버에서 문제가 생기는 것처럼
- Multi-thread에서 Race Condition
- Race Condition : Context Switching으로 원치 않는 결과가 발생하는 것
- 해결법: Atomic Critical Section에 대한 동기화