Redis는 Remote Dictionary Server의 약자로, Key-Value 구조의 NoSQL 중 하나이다. Redis는 Memcached와 비슷한 캐시 시스템으로서 동일한 기능을 제공하며, 영속성, 다양한 데이터 구조와 같은 부가적인 기능을 지원한다. 모든 데이터를 메모리에 저장하는 인메모리 DB이기 때문에 데이터를 불러오는 속도가 매우 빠르다.
즉, Key-Value 구조의 NoSQL DBMS임과 동시에 Memcached와 같은 인메모리 솔루션으로 분리된다.
인메모리 캐시란 말 그대로 데이터를 디스크에 저장하지 않고, 메모리 상에 저장하여 빠르게 접근할 수 있는 캐시로 사용하는 것이다.
DB 접근 요청이 많이 이뤄지면 디스크에 접근하는 횟수가 많아져 DB서버에 부하가 증가하게 되는데, 이때 인메모리 캐시를 적용하면 디스크가 아닌 메모리 상에서 바로 접근이 가능하기 때문에 성능과 처리 속도가 개선된다.
즉, DB에 캐시를 적용하여 성능을 높이는 기술이다.
Redis는 대형 서비스 업체들이 사용자들 간의 대규모 메세지를 실시간으로 처리하기 위해 사용된다. NoSQL 중 Redis가 특히 많이 사용되는 이유는 다음과 같다.
brew install redis (Redis 설치)
redis-server (Redis Server 실행)
redis-cli (Redis Client 접속)
brew services start redis (Redis 서비스 실행)
brew services stop redis (Redis 서비스 중지)
brew services restart redis (Redis 서비스 재실행)
flushAll (Redis 모든 Key 삭제)
set key value
문법을 통해 key-value 데이터를 추가한다.get key
문법을 통해 입력된 key에 대한 value를 조회할 수 있다.append key value
문법을 통해 해당 key에 대한 value를 이어 붙일 수 있다.sadd set:setname value
문법을 통해 set 데이터를 추가한다.smembers set:setname
문법을 통해 set의 데이터를 조회한다.zadd ranking score value
문법을 통해 sortedSet 데이터를 추가한다.zrange ranking start stop
문법을 통해 출력 범위를 지정할 수 있다.hset hsetname hashkey hashvalue
문법을 통해 hashmap 데이터를 추가한다.hgetall hsetname
문법을 통해 hashmap을 조회한다.