내배캠 주요 학습/TIL : Today I Learned

Redis 설치 및 기본 명령어

chaeyoung- 2023. 8. 21. 13:17

 

해당 글에서는 docker 컨테이너에 redis 설치하여 활용하는 방법에 대해서 시도해보겠습니다.

 

 

환경 설정 (설치)

먼저 git bash에서 docker로 부터 Redis 공식 이미지를 불러와서

6379번 포트로 Redis를 실행하는 .yml 파일입니다.

 

해당 파일을 build 시켜줍니다.

build 전에 docker desktop을 실행시켜주셔야 합니다.

위와 같이 docker desktop에 해당 이미지가 생성되어 해당 이미지로부터 Redis 컨테이너가 실행되고 있습니다.

 

 

 

 

 

redis-cli 명령어 실행

cmd를 관리자 권한으로 실행하여 

docker exec -it redis bash를 입력하여 Redis 컨테이너를 cli 환경에서 접근할 수 있습니다.

 

 

Redis는 다양한 자료구조를 지원합니다.

String, List, Set, Sorted Set, Hash, Bit Map & HyperLogLog, Stream, Geospatial Index

 

String

가장 기본적인 자료구조다. Redis 내부 데이터의 특정 Key에 대응하는 Value가 String인 구조이다.

  • keys *   모든 key  값 참조
  • get home   key에 해당하는 value 값 참조 → get home
  • set key value  →  key에 value를 저장
  • del key  →  key를 삭제한다.

 

List 

Linked List와 유사한 구조로, 중간 요소에 접근하기 위해서는 최대 O(N)의 시간복잡도를 필요로 한다. 하지만 양측의 포인터를 모두 가지고 있기 때문에, Queue, Stack 등 다양한 형태로 응용이 가능하다.

  • lpush key value value  →  List의 왼쪽에 데이터를 넣는다.
  • rpush key value value  →  List의 오른쪽에 데이터를 넣는다.
  • llen key  →  List의 인덱스 넘버 표시. (List에 value가 3개가 들어있을 경우에는 인덱스가 0부터 시작하므로 결과값 2)
  • lrange key start end  특정 key에 대응되는 list의 왼쪽 인덱스부터 특정 인덱스까지 범위 조회
  • lpop key    List의 가장 오른쪽 데이터를 꺼낸다.

 

Set

List와 달리 순서X, 데이터 조작 시, O(1)의 시간복잡도를 지니고 중복 데이터를 허용하지 않는다.

  • sadd key vallue value value  해당 key에 값 추가
  • smembers key  →  해당 key에 값 모두 출력
  • sismember key value  →  해당 key에 value가 있을 경우 '1', 없을 경우 '0' 반환

 

 

 

 

 

 


redis 설정 변경

docker 내부에 명령어를 살펴보면, 아래와 같이 conf 파일이 없다는 것을 알 수 있습니다.

redis.conf 파일을 생성하여 설정 파일에 레디스의 비밀번호, 포트, 바인드 여부 등을 추가하면 레디스의 설정 옵션을 관리하기 한 층 쉬워진다. 이를 파일을 사용하기 위해서 https://redis.io/topics/config 로 이동해서 버전에 맞는 config을 다운받을 수 있습니다. 저는 해당 설정 없이 기본 설정으로 진행하도록 하겠습니다.