REDIS

REDIS 개요

  • REmote DIctionary System
  • key-value store
  • 원격 cache : network를 통해 get / set

Windows Redis client

Redis 실습용 설치

참고 : https://jistol.github.io/docker/2017/09/01/docker-redis/

docker로 설치

redis client

데이터 구조체

참고 : http://bcho.tistory.com/654

Alt text

String

String

  • 기본형은 String
  • 정수/실수형 없음
  • 최대 512MB
  • 이진데이터 저장 가능

string 입출력

multi set

증가/감소

공통으로 쓰는 값이기 때문에 직접연산한 값을 저장하는것 보다 안전

문자열길이

SET [S]

특징

  • string 집합
  • 중복허용 안됨
  • 순서X
  • 최대 42억개 (성능상 수천만개 저장 권장)

저장

원소

집합의 연산

Sorted Set [Z]

특징

  • value에 score가 추가되어, score 순으로 정렬
  • 범위 검색 가능
  • min/max 값 검색 가능

입력

범위검색

등수

스코어

Hash [H]

특징

  • Field와 String의 쌍으로 저장
  • java의 HashMap과 비슷
  • 최대 42억개 저장

입출력

키/값

삭제

연산

List [L:left, R:Right]

특징

  • list 앞/뒤/특정위치에서 (push / pop)

왼쪽 넣기

특정위치 넣기

Redis 보안

참고 : https://redis.io/topics/security

  • 단일 인터페이스 바인딩 : redis.conf 파일에 bind 추가
  • 인증 : AUTH 명령으로 암호 설정
  • redis는 암호화 지원하지않으므로, spiped 와 같은 SSL 프록시 사용
  • 특정명령 비활성화 : redis.conf에 명령을 변경하거나 비활성화

Redis용 Amazon ElastiCache 보안

운영 명령어

command : https://redis.io/commands
참고 : http://redisgate.kr/redis/introduction/redis_intro.php
참고 : http://semode.tistory.com/152

  • info : redis 버전, 운영시스템, 접속된 사용자, 메모리, 복제 등 정보 확인
  • info memory : 메모리 정보
  • info stats : 통계 정보
  • info clients : client 정보
  • dbsize : keys 수
  • debug segment : redis 서버 crash
  • monitor : 처리되는 명령어 실시간 확인 (주의 : redis 성능 저하 유발)
  • client list : 접속되어 있는 client list
  • client setname 변경할이름 : 접속되는 client 이름 변경
  • client kill addr 127.0.0.1:123423 : address로 client kill
  • client kill id 22 : id 22의 client kill
  • client kill type slave : slave 타입의 client kill
  • flushall : 전체 keys 삭제
  • randomkey : 임의의 key 반환
  • expire key1 60 : 60초후 key1 삭제
  • expireat key1 13424324 : unixtime 기준 key1 삭제
  • TTL test1 : test1키의 expire 되기전 남은 시간 (초, TTL이 없으면 -1, key가 없으면 -2)
  • PTTL test1 : test1키의 expire 되기전 남은 시간 (밀리초)
  • persist test1 : test1키에 timeout 제거
  • setex key1 30 test1 : set + expire 명령어
  • del key1 key2 : key1, key2 삭제
  • exists key1 : key1키가 존재하는지 확인
  • ping : redis 서버 상태 체크, 응답은 pong
  • auth 비밀번호 : client 인증
  • script kill : 수행중인 lua script 수행 중단 (no write 일때 가능, 중단이 안되면 shutdown nosave)
  • shutdown save : 모든 client를 중단하고 data 저장후 redis server 다운
  • shutdown nosave : : 모든 client를 중단하고 data 저장없이 redis server 다운
  • object encoding test1 : test1키의 encoding 방식 확인 (응답값 : string, ziplist..)

Lecttuce

참고 : http://redisgate.kr/redis/clients/lettuce_intro.php
참고 : https://jojoldu.tistory.com/297

댓글 남기기