[Redis] redis 키 관련 명령어
레디스의 데이터들은 {키:값} 형태로 관리된다.
레디스에 저장 가능한 value값의 타입종류
1.String
2.List
3.Hashes
4.Sets
5.Sorted Sets
키 생성방법
- set key명 value
ex) set myname "seok"
- set key명 value nx
ex) set myname "seok" nx ->이미 존재하는 key명일 경우 생성안됨!!(안전!)
- set key명 value xx
ex) set myname "seok" xx ->이미 존재하는 key에 해당 값으로 변경시킴(이미 존재하는 key여야함)
해당 key의 해당하는 value 얻기
- get key명
ex) get myname
키 삭제방법
- del key명
ex) del myname
- del key명 key명2....
ex) del myname test mykey ...
- unlink key명
ex) unlink myname
- unlink key명
ex) unlink myname test ... -> 대규모 key 삭제시 비동기처리로 삭제하게할 수 있음 del 키워드로 삭제하면 너무 느리기 때문에 이거 사용함 (실질적 삭제는 해당키에 접근했을때 삭제가 된다.)
값에 더 추가 데이터 넣는법
- append key명 value
ex) append myname Na -> 결과값으로 Integer 값을 주는데 총 value값의 길이이다.
저장된 데이터가 존재하는지 확인하는 방법
- exists key명
ex) exists myname -> 결과 integer값이 0이면 존재하지 않음 , 1이면 존재함
- exists key명 key명2 ..
ex) exists myname test .. -> 결과 integer 값이 찾으려는 key 수와 같지 않다면 해당 키중에서 무언가는 존재하지 않는 값이라고 판단
키생성 과 만료시간 설정
- set key명 value time (ex는 초단위 px는 밀리세컨즈)
ex) set myname "seok" ex 10 -> 10초 동안 유지됨
ex) set myname "seok" px 10000 -> 10초 동안 유지됨
키 만료시간 얼마나 남았는지 확인 방법
- ttl key명
ex) ttl myname -> integer 값으로 응답해줌 , -2값이 응답이 오면 만료되었다는 뜻
-> 키 생성시 만료시간을 설정해주지 않으면 -1 로 응답이 온다.
- pttl key명
ex) pttl myname -> 만료시간 설정을 밀리세컨즈로 설정했을경우 확인 방법(ttl로 확인하면 밀리세컨즈 단위로 알수 없을뿐 안되는건 아님)
만료시간을 설정하지 않고 key를 만들어낸 후 뒤에 만료시간을 설정하는법
- Expire key명 time
ex) expire myname 20 -> myname 이라는 이름을 가진 key는 20초 후 만료된다.(초단위)
ex) pexpire myname 20000 -> myname 이라는 이름을 가진 key는 20초 후 만료된다.(밀리세컨즈)
설정된 만료시간 없애기
- persist key명
ex) persist myname -> 기존에 설정해둔 만료시간을 없애버린다.
-> 기존에 설정해둔 만료시간이 있었다면 1로 응답이 오고 없다면 0으로 응답이 온다.
같은키 이름에 set 해서 다시 하게되면?
- set myname "seok" 이후 set myname "Na" 로 바꾸게 되면 기존것에 덮어씌어져서 마지막것으로 설정되어있다.
key 이름 재정의하기
- rename 기존key명 새로운key명
ex) rename myname name -> 기존키와 새로운키가 존재한다면 기존키는 삭제가 되어버린다.
** rename 새롭게바꿧던key명 다른key명 - 이미 존재하던 key명을 새롭게 바꿧던 키명에 다시바꿀 key명으로 정의시 값이 덮어씌어진다
- renamenx myname name
- 만약에 해당 키값이 존재한다면 변경되지 않고 삭제가 되지 않는다.(안전!!)
저장되어있는 값 타입 확인하기
- type key명
ex) type myname