
메모리를 사용하는 키-값 인메모리 데이터 구조 스토어로 NoSQL이다. RDS나 MongoDB보다도 빠른 속도로 동작한다. database, cache, message broker, streaming engine 등으로 사용되어 진다.
로컬 환경에서 레디스를 호출하는 방식
- AWS EC2 같은 인스턴스에 레디스를 설치하여 내부 메모리를 사용하는 방식
클라우드 서비스를 사용하여 외부 자원을 이용하는 방식
일반적으로 Redis의 Key는 :으로 구분자를 만들어 사용하며 키를 길고 깊게 만들어도 검색 속도는 항상 O(1)이다.
mysql> select * from login;
+---------+----------------+-------------+---------------------+
| user_id | name | login_times | last_login_time |
+---------+----------------+-------------+---------------------+
| 1 | fk | 5 | 2013-09-26 00:00:00 |
| 2 | zhangsan | 1 | 2013-09-25 00:00:00 |
| 3 | zhaokuangyin | 2 | 2013-09-01 00:00:00 |
+---------+----------------+-------------+---------------------
위에 테이블을 Redis에 저장할 경우 테이블이름:userId:저장할컬럼 형식으로 Key를 구성한다.
SET login:1:login_times 5
SET login:2:login_times 1
SET login:3:login_times 2
SET login:1:last_login_time 2013-09-26
SET login:2:last_login_time 2013-09-25
SET login:3:last_login_time 2013-09-01
SET login:1:name "fk"
SET login:2:name "zhangsan"
SET login:3:name "zhaokuangyin"
일반적으로 메모리에 데이터를 저장하면 restart할 경우 모든 데이터가 날아간다. 하지만, Redis는 디스크에 저장된 데이터를 기반으로 복구할 수 있다.
두 방식중에 우월한 방식은 존재하지 않으며 상황에 따라 다르게 사용해야 한다.