set을 통해 key:value 세팅 - set user:email:1 tera199810@gmail.com - 단, 이미 존재하는 키이면 덮어쓰기가 된다
nx(not exist)를 통해 중복입력 방지 - set user:email:1 tttt@gmail.com nx - 같은 키가 존재하면 pass, 없으면 set
ex(expiration)를 통한 유효기한 설정 - set user:email:2 abcd@gmail.com nx ex 10 - 10초간 해당 데이터를 유지(nx는 상황에 따라 사용) - expire <Key> 초단위 시간 : 유효기한을 나중에 설정해줄 때 - TTL(Time To Live) 이라고 부르기도한다 - Redis는 영구적인 데이터 보관을 목적으로 하지 않기 때문에 유효기한을 설정하는 편이다 - 활용 : 사용자 인증정보 저장(ex-refresh 토큰) * set user:1:refresh_token <쿠키값> ex 10000 * 해당 토큰을 통해 매번 인증할 필요없이 일정 시간동안 인증을 자동적으로 진행한다 * at(accesstoken) : 유효기한이 짧은 토큰 * rt(refresh token) : 유효기한이 긴 토큰 * 인증요청은 매우 빈번한데(탭을 옮기거나 할때마다 진행) 느린 db를 사용하면 응답속도가 느려진다
del을 통한 키삭제 - del <Key> : 해당 Key 삭제 - flushdb : select된 데이터베이스의 모든 데이터 삭제
redis 활용 예 - 좋아요 기능 1. rdb에서 관리하게되면 동시성 문제가 발생할 수 있다 2. redis는 싱글 스레드이기 때문에 동시성 문제가 발생하지 않는다 - 재고관리 1. 좋아요기능과 마찬가지 * 사용 예 set posting:1:likes 0 incrposting:1:likes : 특정 Key의 Value를 1만큼 증가 decr posting:1:likes : 특정 Key의 Value를 1만큼 감소 - 캐싱(임시저장) 기능 0. redis에서 조회했던 기록이 있는지 확인한다 1. 최초 조회시에는 rdb에서 값을 받아온다 2. 사용자에게 보여주기 전에 redis에 저장 3. 사용자에게 보여준다 4. 사용자가 종료하고 다시 열람하면 0번에서 값을 가져온다 ** 이 때 데이터는 Json을 표준으로 사용한다