Redis CLI
1. Install CLI
redis install하기
- 공식 설치법은 해당 링크를 참조해 주시기 바랍니다.
2. redis접속하기
- host 및 port를 입력하여 연결
$ redis-cli -h [host ip] -p [port ex 6379]
- 키값을 이용하여 데이터 저장
$ set [key] [value]
ex) $ set name "alex"
위 예시처럼 작성하면 키값이 name이고 "alex" 데이터를 저장할수 있습니다.
- 같은 키값이 존재하지 않으면 데이터 저장
$ set [key] [value] nx
ex) $ set name "alex" nx
위 예시처럼 작성하면 키값이 name이고 "alex" 데이터를 저장할수 있습니다. 다만 redis안에 동일한 키가 존재하면 생성할수 없습니다.
- 같은 키값이 존재하지 않으면 여러 데이터 저장
$ msetnx [key1] [value1] [key2] [value2] [key3] [value3] etc ...
ex) $ msetnx 1 a 2 b 3 c
위의 예시처럼 키값이 1,2,3이 각각 value를 a,b,c를 갖게합니다. 다만 redis안에 동일한 키가 하나라도 존재하면 입력한 전체 키와 데이터를 생성할수 없습니다.
- 같은 키값이 존재해야 데이터 저장
$ set [key] [value] xx
ex) $ set name "alex" xx
위 예시처럼 작성하면 키값이 name이고 "alex" 데이터를 저장할수 있습니다. 다만 redis안에 동일한 키가 존재하면 생성할수 있습니다.
- 여러 키값이 존재해야 데이터를 한꺼번에 저장
$ mset [key1] [value1] [key2] [value2] [key3] [value3] etc.....
ex) $ mset 1 "alex" 2 "jhon" 3 "jack"
위 예시처럼 작성하면 여러 키값과 value를 입력할수 있습니다. 제한은 없으며 value로 들어가는 값은 기본적으로 string입니다.
- 키값을 이용하여 데이터 저장시 유효시간을 지정한다.
$ set [key] [value] EX [number ex) 10]
ex) $ set name "alex" EX 10
위 예시처럼 작성하면 키값이 name이고 "alex" 데이터를 저장할수 있습니다. 위 키값은 10초간 유지가 가능합니다. Document를 확인해서 여러 셋팅값을 확인할수 있습니다.
- 키값을 이용하여 데이터를 불러온다.
$ get [key]
ex) $ get name
위 예시처럼 작성하면 키값이 name인 value값을 확인합니다. 만약 키가 존재하지 않으면 null값을 반환합니다.
$ mget [key1] [key2] [key3] etc ...
ex) $ mget key1 key2 key3
mget을 이용하여 각각의 키값의 value를 배열로 조회한다. 해당 키값이 존재하지 않을시 null값을 반환합니다.
- 해당 키가 만료시까지 몇초 남았는지 확인합니다.
$ ttl [key name]
ex) $ ttl name
위 예시처럼 작성하면 키값이 name이고 만료시까지 몇초가 남았는지 알수 있습니다. pttl을 사용시 밀리초로 나타냅니다.
- 키의 존재유무 확인
$ EXISTS [key]
ex) $ EXISTS name
위 예시처럼 작성하면 키값이 name을 가진 데이터가 존재하는지 확인할수 있습니다.
- redis를 종료하기. (메모리 데이터를 하드에 저장 안함)
$ SHUTDOWN NOSAVE
redis에 있는 메모리를 따로 저장하지 않습니다.
- redis를 종료하기. (메모리 데이터를 하드에 저장)
$ SHUTDOWN SAVE
redis에 있는 메모리를 따로 저장하고 다음에 redis서버를 불러올때도 데이터를 유지합니다.
- 존재하는 키값 변경
$ Rename [original key name] [new key name]
ex) $ Rename name korean_name
위의 예시처럼 기존에 존재하던 name이라는 키를 korean_name으로 변경합니다.
Redis 배열
- 키값을 정하고 Value를 배열로 저장(마지막 value가 0번 인덱스)
$ lpush [key name] [value1] [value2] etc ...
ex) $ lpush number 1 2 3
위의 예시처럼 number키에 숫자 1,2,3을 순서대로 입력합니다. 출력때는 가장 마지막 숫자 '3'이 0번째 인덱스 입니다. 또 기존의 배열에서 0번째 인덱스에 삽입을 할수 있습니다.
- 존재하는 배열에 대체할 인덱스를 지정하고 한개의 원소를 입력합니다.
$ lset [key name] [index] [value]
number ["1", "2", "3", "4", "5"]
ex) $ lset number 2 6
Result : ["1", "2", "6", "4", "5"]
해당 number배열에서 2번 인덱스에 6을 대체합니다. 웨 예제 cli를 실행후 6은 2번 인덱스에 삽입이 되고 3은 삭제됩니다. index가 -1이면 가장 마지막 인덱스를 대체합니다.
- 키값을 정하고 Value를 배열로 저장(첫번째 value가 0번 인덱스)
$ rpush [key name] [value1] [value2] etc ...
ex) $ rpush number 1 2 3
위의 예시처럼 number키에 숫자 1,2,3을 순서대로 입력합니다. 출력때는 가장 마지막 숫자 '3'이 2번째 인덱스 입니다. 또 기존의 배열에서 마지막 인덱스 다음에 삽입을 할수 있습니다.
- 키값이 존재하면 배열 원소 입력(입력순으로 마지막 인덱스에 추가), lpushx는 반대임
$ rpushx [key name] [value1] [value2] etc ...
ex) $ rpushx number 1 2 3
위의 예시처럼 number키에 숫자 1,2,3을 순서대로 입력합니다. 출력때는 가장 마지막 숫자 '3'이 2번째 인덱스 입니다. 또 기존의 배열에서 마지막 인덱스 다음에 삽입을 할수 있습니다. 하지만 number키가 존재하지 않으면 배열을 생성 혹은 추가하지 않습니다.
- 해당 배열에서 count만큼 삭제를 합니다.(마지막 인덱스부터 count까지 삭제), rpop는 반대임
$ lpop [key name] [count]
ex) $ lpop number 1
number의 키 value가 배열로 되어있을때 위 예제에서는 배열의 마지막 인덱스 1개(count)를 삭제합니다. 삭제후에 삭제된 원소에 대해서 return해줍니다.
- 해당 배열에서 start 부터 stop인덱스까지만 남겨놓습니다.
$ ltrim [key name] [start] [stop]
ex) $ ltrim number 1 2
number의 키 value가 배열로 되어있을때 위 예제에서는 1,2번 인덱스의 value를 제외하고 모두 삭제합니다. 삭제후에 삭제가 제대로 되면 OK를 return해줍니다.
- 배열로 저장된 키를 불러오기
$ lrange [key name] [start] [end]
ex) $ lrange number 0 1
위의 예시처럼 number키에 시작 인덱스는 0, 종료인덱스는 1로하게 되면 2개의 원소가 반환됩니다. 이 원소는 0,1번째 인덱스입니다. 전체를 원하면 시작은 0 종료는 -1로하면 됩니다.
- 존재하는 키를 동기적으로 삭제한다
$ unlink [key name]
ex) $ unlink name
위의 예시에서 name을 unlink하였다. 만약 name의 value값이 크면 삭제하는데 시간이 걸리고 redis의 DB에 영향을 줄수 있습니다. 따라서 삭제함과 동시에 다른작업이 원활하게 할수 있도록 unlink를 사용합니다.
댓글
댓글 쓰기