Redis : Remote Directory System
- Key-Value 데이터베이스
- In Memory
- Sentinel 모드?
2.1 시작 & 종료 on Linux
2.1.1 Redis Server 시작

2.1.2 Redis Client 실행 및 서버 종료

- Redis-Shell 에서 실행할 수 있는 명령어 리스트 조회

1) Redis server 인스턴스 시작

2) Redis client 를 통해 Redis 서버에 접속

3) 테스트 데이터 입력
set 이라고 치면 요렇게 문법이 나온다 😮


4) Redis 서버 인스턴스 종료
shutdown: 서버 종료 명령어
not connected> : Redis 서버 인스턴스가 종료된 상태

5) 로그 파일


2.2 데이터 처리
2.2.1 key- value DB 의 논리적 구조 용어 설명

- Table: 하나의 DB에서 데이터를 저장하는 논리적 구조
- Data Sets: 테이블을 구성하는 논리적 단위 (= row)
- Key: 인식하기 위한 식별자. 하나 이상의 조된 값으로 표현 가능
- Values: 해당 key에 대한 데이터 값. 하나 이상의 field, element 로 구성
2.2.2 기본적인 data type
<컨테이너 타입>
2.2.3 string 데이터 입력/수정/삭제/조회
- set: 데이터를 저장할 때
- get: 저장된 데이터를 가져올 때
- rename: 저장된 데이터 값을 변경할 때
- randomkey: 저장된 key 중 하나를 랜덤으로 검색할 때
- keys: 저장된 모든 key를 검색할 때
- exists: 검색 대상 key 가 종재하는지 여부를 확인할 때
- mset/mget: 여러개의 key 와 value를 한번에 저장하고 값을 가져올 때
1)keys 뒤에 패턴을 적어줘야 한다

2) ex 는 expire. 일정시간 동안만 값을 저장


3) value 값 증/감 가능
- incr, decr 는 1씩만
INCR 는 스트링으로 저장된 값을 숫자형태로 변환한 뒤 1을 증가시킴.
그렇게 증가된 값을 다시 스트링으로 저장
- incrby, decrby 는 2이상


4) 현재 저장되어있는 key-value 값을 파일로 저장

👇 요렇게 파일로 남는다

2.2.4 Hash 데이터 입력/수정/삭제/조회
- 필드 개수에 제한이 없다
- 문자 값을 저장할 때는 " " 사용
- hmset, hget, hgetall, hkey, hlen



2.2.5 List 데이터 입력/수정/삭제/조회
- 배열이랑 유사한 데이터 구조
- String 타입의 경우 배열에 저장할 수 있는 데이터 크기는 512MB
- lpush, lrange, rpush, rpop, llen, lindex



2.2.6 Set 데이터 입력/수정/삭제/조회
- List 가 하나의 필드에 여러개의 배열 값을 저장할 수 있는 구조라면, Set 은 여러개의 엘리먼트를 저장할 수 있는 구조
- List 는 중복 값 허용/ Set 중복값 허용 X
- sadd, smembers, scard, sdiff, sunion
👇 -1: 마지막

👇 저장된 value 개수

👇 SDIFF A B : A에만 있는 value 출력



👇 SREM: 지정 제거, SPOP: 랜덤 제거


2.2.7 Sorted Set 데이터 입력/수정/삭제/조회
- key 하나에 여러개의 score와 value 로 구성
- set 과 동일하되 sorting 된 상태이면 sorted set, 아니면 set
- zadd, zrange, zcard, zcount, zrank, zrevrank
- value 는 score 로 sort 되며 중복되지 않는다
- score 가 같으면 value 로 sort 된다


👇 ZREVRANK: Reverse rank / ZSCORE: 데이터가 저장된 시점의 값의 score 를 출력

2.2.8 Bit 데이터 입력/수정/삭제/조회
- setbit, getbit, bitcount

2.2.9 Geo 데이터 입력/수정/삭제/조회
- 위도, 경도 데이터를 관리
geoadd, geopos, geodist, georadius, geohash





2.2.10 HyperLogLogs 데이터 입력/수정/삭제/조회
- RDB 에서 check 제약 조건(해당 컬럼에 반드시 저장되어야 할 데이터 값 만 저장할 수 있도록 제한)이랑 비슷한 개념
- pfadd, pfcount, pfmerge


