-
Redis - docker 설치 및 접속웹 개발/DBMS 2022. 2. 17. 10:23
Redis 기본 정보
사이트 : https://redis.io/
https://redis.io/documentation
기본 포트 : 6379
접속 명령 : # redis-cli
# redis-cli -h 127.0.0.1 -p 6379 -a 'passwod'
# redis-cli -a 'passwod'
# redis-cli
127.0.0.1:6379> auth "dev"
OK127.0.0.1:6379> CONFIG SET requirepass "변경할 비밀번호"
명령어 형식SET key "value" [EX seconds] [PX milliseconds] [NX|XX] : 기본 입력 형태로 키와 값을 입력, 키가 있으면 값을 변경
SETEX key seconds "value" : 키, 값과 보존 시간 설정하여 등록
SETNX key "value" : 키 없을 때만 값 저장 (SET if Not eXists의 약어)
GET key : 기본 출력 형태, 키에 값이 없으면 nil을 반환GETSET key value : 값을 읽고 난 후 값을 변경, 값이 없으면 nil을 반환 후 새로운 값 저장
STRLEN key : 값의 길이 리턴, 0이면 키가 없음
SETRANGE key offset_value : key의 값 중 오프셋 시작부터 문자열을 덮어 씀예) SET ke1 "abcde fghij"
SETRANGE ke1 6 "REDIS"
get ke1
"abcde REDIS"GETRANGE key 시작offset_value 끝offset_value
: 시작 offset_value=0, 끝offset_value -1 이면 전체, 값 중 offset 범위 많음 읽음
offset_value : 양수 0 ~ n로 앞에서부터 읽기, 음수 -n ~ -1로 뒤에서부터 읽기
즉, SET ke1 "abcde fghij"에서 'f'의 위치는 양수 6, 음수 -5의 값을 같음예) GETRANGE ke1 0 4
"abcde"INCR key : 키의 값을 1씩 증가, 값이 없으면 0을 기본값으로 함
예) incr cnt1 (set 등록 없이 바로 incr하여도 동작됨)
get cnt1
"1"DECR key : 키의 값을 1씩 감소, 값이 없으면 0을 기본값으로 함
예) decr cnt2 (set 등록 없이 바로 decr하여도 동작됨)
decr cnt2
get cnt2
"-2"INCRBY key increment : 키의 값을 increment씩 증가, 값이 없으면 0을 기본값으로 함
DECRBY key increment : 키의 값을 increment씩 감소, 값이 없으면 0을 기본값으로 함
INCRBYFLOAT key increment: 키의 값을 소숫점 단위의 increment씩 증/감소, 값이 없으면 0을 기본값으로 함
예) SET ke3 100.5
INCRBYFLOAT ke3 0.1
"100.6"
INCRBYFLOAT ke3 -5
"95.6"MSET key value [key value...] : 키 값 키 값... 형식으로 등록/수정, 즉 여러 데이터 한번에 등록
MGET key [key ...] : 나열된 키들에 대한 값을 조회, 즉 한번에 여러 데이터 조회
예) MSET ky21 "va21" ky22 "va22" ky23 "va23"
MGET ky21 ky22 ky23
1) "va21"
2) "va22"
3) "va23"MSETNX key value [key value...]: MSET 동일 하나, 한개라도 KEY가 존재하면 전체 등록 취소함
예) MSETNX k31 "hello1" k32 "hello2" k33 "hello3" #모두 정상 등록됨
MSETNX k32 "hello3" k34 "hello4" k35 "hello5" #모두 등록 취소됨PSETEX key milliseconds value : 데이터 보관 유효시간을 밀리 초로 지정, SETEX 동일
예) PSETEX ke1 3000 "Value1" # 3초 뒤 삭제
APPEND key value : key의 값 끝에 문자열 추가, 키가 없음 등록함(기존에 숫자여도 문자열로 인식하여 추가)
예) append k51 100
append k51 100
get k51
"100100"(단순 키형) 1개 키에 1개 값 등록
key 지정, 값 저장/수정: set key value (예: set m1 KorMan, set m1 "kor Man" Ex 10)
Key 지정, 값 저장 - 유효.보존 시간(초) 설정: setex key time(sec) value (예: setex m1 30 KorMan)
key 지정, 값 일기: get key (예: get m1)
key 지정, 데이터 삭제: del key (예: del m1)(리스트형) 1개 키에 n개 값
리스트 데이터 추가: lpush key value1, value2 ...
리스트 데이터 조회: lrange key startindex endindex
예: lpush key11 value1, value2
lpush key11 value1, value2, value3, value4, value5, value6, value7, value8
lrange key11 0 -1
1) "value8"
2) "value7,"
3) "value6,"
4) "value5,"
5) "value4,"
6) "value3,"
7) "value2,"
8) "value1,"
9) "value2"
10) "value1,"Redis Docker 실행
- 컨테이너 실행
docker run -d -p 6379:6379 --name myRedis redis --requirepass "dev"
- 접속 윈도우 도커 터미널 접속 후
# redis-cli
127.0.0.1:6379> auth "dev"
OKRedis Docker
Docker Hub : https://hub.docker.com/_/redis
docker pull redis docker run --name some-redis -d redis docker run --name some-redis -d redis redis-server --save 60 1 --loglevel warning docker run -it --network some-network --rm redis redis-cli -h some-redis FROM redis COPY redis.conf /usr/local/etc/redis/redis.conf CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ] docker run -v /myredis/conf:/usr/local/etc/redis \ --name myredis redis redis-server /usr/local/etc/redis/redis.conf
Redis Docker 설치 정보
docker redis 설치 출처: https://emflant.tistory.com/235
docker run --name my-redis \ -p 6379:6379 \ --network redis-net \ -v my/folder:/data \ -d redis:alpine redis-server --appendonly yes
Redis 설치 with docker 출처: https://littleshark.tistory.com/68
# 기본 docker run -d --name redis -p 6379:6379 --network redis-net redis # 볼륨 설정하기 docker run --name redis -p 6379:6379 \ --network redis-net \ -v /Users/jiyeonpark/Desktop/redisvolume -d redis:latest redis-server --appendonly yes
Docker Redis 설치 : https://dingrr.com/blog/post/redis-도커docker로-redis-설치하기
# 네트워크 생성 docker network create redis-net docker run --name dingrr \ -p 6379:6379 \ --network redis-net \ -d redis redis-server --appendonly yes # redis-cli 로 실행한 dingrr Redis 서버에 접속 docker run -it --network redis-net --rm redis redis-cli -h dingrr
Docker Redis 설치, 접속: https://gofnrk.tistory.com/84
#신규 Container 생성, 실행 docker run --name redis-container -p 6379:6379 redis --requirepass admin12#$ docker run --name redis-container -p 6379:6379 -dit --restart unless-stopped redis #컨테이너에 터미널 접속 docker exec -it redis-container /bin/bash
docker-compose로 올리기: https://juntcom.tistory.com/120
version: "3.3" # 파일 규격 버전 services: # 이 항목 밑에 실행하려는 컨테이너 들을 정의 redis: container_name: redis hostname: redis image: redis ports: - "6379:6379" redis-commander: container_name: redis-commander hostname: redis-commander image: rediscommander/redis-commander:latest restart: always environment: - REDIS_HOSTS=local:redis:6379 ports: - "8081:8081"
(끝)