반응형
Recent Posts
Recent Comments
관리 메뉴

개발잡부

[Redis] Count 와 Hash (INCR,DECR, HSET, HGET) 본문

Redis

[Redis] Count 와 Hash (INCR,DECR, HSET, HGET)

닉의네임 2024. 5. 12. 23:49
반응형

개발환경

  • MacOs
  • docker

 

설치

  • docker-compose.yml
# 파일 규격 버전
version: "3.1"

# 실행하려는 컨테이너들 정의
services:
  # 서비스명
  redis_container:
    # 사용할 이미지
    image: redis:latest
    # 컨테이너명
    container_name: redis
    # 접근 포트 설정(컨테이너 외부:컨테이너 내부)
    ports:
      - 6379:6379
    # 스토리지 마운트(볼륨) 설정
    volumes:
      - ./redis/data:/data
      - ./redis/conf/redis.conf:/usr/local/conf/redis.conf
    # 컨테이너에 docker label을 이용해서 메타데이터 추가
    labels:
      - "name=redis"
      - "mode=standalone"
    # 컨테이너 종료시 재시작 여부 설정
    restart: always
    command: redis-server /usr/local/conf/redis.conf

 

실행

docker compose up -d --build 

 

접속

redis-cli 까지 접속해보자

 

(base) ➜  ~ docker exec -it redis /bin/bash 컨테이너 접속

root@eec19f53dc2e:/data# redis-cli

 

127.0.0.1:6379>

 

127.0.0.1:6379> keys *
(empty array)

 

 

아래처럼 해도 됨

 

컨테이너 IP 주소 찾기 

(base) ➜  ~ docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' redis

172.19.0.2

 

접속 

redis-cli -h <컨테이너 IP 주소>

 

 

 

 

테스트

카운트 증가

172.19.0.2:6379> INCR doocount.

 

카운트 감소

172.19.0.2:6379> DECR doocount 

 

 

 

키 전체 삭제 

  • FLUSHDB (현재 선택된 데이터베이스의 모든 키를 삭제)
  • FLUSHALL (인스턴스에 있는 모든 데이터베이스의 모든 키를 삭제)

 

172.19.0.2:6379> flushall
OK

 

 

 

HSET은 Redis에서 해시 데이터 구조를 사용하여 필드와 값 쌍을 설정하는 명령어입니다. 해시는 필드와 값의 매핑을 저장하는 데이터 구조로, 특히 여러 속성을 가진 객체를 표현할 때 유용합니다.

 

user:123 에 name 과 email 을 등록 하고

 

172.19.0.2:6379> HSET user:123 name "John Doe"
(integer) 1

172.19.0.2:6379> HSET user:123 email "john@example.com"
(integer) 1

 

 

키를 확인하면 user:123 키가 생성된 것 을 확인 할 수 있다. 

172.19.0.2:6379> keys *
1) "user:123"

 

내용을 확인해야 하는데 key 와 arguments 를 같이 입력해야 한다. 

 

(error) ERR wrong number of arguments for 'hget' command

 

172.19.0.2:6379> HGET user:123 name
"John Doe"

 

HGET 으로 user:123의 name 을 확인

반응형

'Redis' 카테고리의 다른 글

[Redis] docker compose redis  (1) 2024.05.12
Comments