본문 바로가기

728x90
반응형
SMALL

Redis

(6)
Redis password 조건 requirepass를 hello123!@# 로 설정을 했다. redis-cli -h yourdomain -p 6379 -a 'hello123!@#' 위의 명령어를 쳐서 레디스에 접근하려 했다. 근데 왠걸 AUTH failed: ERR invalid password 인증에 실패했다는 에러가 뜬다. 뭐지??? 비밀번호 설정을 제대로 안해줬나, 다시 확인해보고, 레디스가 적용이 안됐나, 레디스서버 내렸다가 재기동도 시켜보고..... 여러 글을 보며, 원인을 간신히 파악했다. redis 비밀번호 설정할때 (!, &, #, $, ^, , -) 문자만 허용가능하고, 나머지 문자는 사용할수 없다는것... 'hello123!@#' 저 '@' 때문에 걸렸던 것이다. hello123!@# -> hello123!# 로 수..
cannot deserialize from object value Redis를 이용하다가, cannot deserialize from object value 에러를 마주하였다. 결론은 . API 요청 시 Request Body의 JSON 데이터를 DTO(Java Object)로 변환을 해주는 이때 DTO의 기본 생성자를 찾을 수 없어서 나는 에러이다. 해결은 . api 요청시 반환해주는 DTO의 기본 생성자를 추가해주면 끝이다.
Redis Backup1, Backup2, Backup3, Backup4 네 제목그대로 레디스 데이터안에 Backup1,Backup2.... 이상한 데이터가 들어 있다구요? 기존에 있던 캐시 데이터가 다 날라갔다구요? 누군가 레디스에 들어와, 정보를 다 날리고 이상한 데이터를 넣었나보네요 [원인] - redis 서버가 기본포트 6379로 열려있음. - 비밀번호 설정을 안해줌. 이런 두가지 이유가 되겠습니다. 크롤러봇들이 기본포트가 6379이고, 비밀번호 설정이 안되어있는 모든 것들을 탐색해서 모든 키를 지우고 위에와 같은 이상한 스크립트를 심는다고 합니다. 그래서 저희는 막아야합니다. 먼저 기본포트 6379를 안쓰는 포트로 변경해주는 방법은, 대체적으로 많이 알려져있는 포트이기때문에, 가급적이면 변경하지 않는 것이 좋다고 합니다. 그래서 비밀번호 설정을 해보도록 하겠습니다. ..
외부에서 Redis 설치/접속하기 외부에서 redis를 접속하기 전, 해당 서버에서 redis를 먼저 설치해주자. 설치 [apt-get을 업데이트 해주자] sudo apt-get update sudo apt-get upgrade [redis-server 설치해주자] sudo apt-get install redis-server [잘 설치 되었는지 확인] redis-server --version 외부접속 허용 해당 서버에서 /etc/redis.conf 영어로 쭉 뜰거다. 쭉 내리다보면 # bind 127.0.0.1 로 주석이 되어있는 거를 볼수있다. 'bind 127.0.0.1 -> bind 0.0.0.0' 로 변경해준다. 적용을 했으니 서버를 재기동해준다. sudo systemctl restart redis-server.service 암호..
Redis 간단한 명령어 알아보기 Redis 는 Key-Value 모습으로 되어 있습니다. 간단한 명령어를 알아봅시다. 저장 Set key value set [key 이름] [value 값] 으로 데이터를 저장 할 수 있습니다. 조회 keys * keys [패턴] 을 통해 키들을 조회 할수 있습니다. get [key 이름] 으로 key 이름을 가진 key의 value 를 조회 할수 있습니다. 삭제 del key del [key 이름]을 통해 key-value를 삭제 할수 있습니다. 연결된 현재데이터베이스의 키들을 삭제하려면 flushdb 모든 데이터베이스의 키들을 삭제하려면 flushall Key 수정 rename key 변경키명 rename [key 이름] 을 통해 key의 이름을 변경 할 수 있습니다. 끝
Redis 성능 차이 비교 Redis를 사용하면 얼마나 성능 차이가 있을지 궁금해서 확인해보았다. 개발환경 - Springboot 3.0.4v - JDK 17 - 약 10000개 가량의 더미데이터 Controller //@RequestMapping("/api/v1/redis") @GetMapping("") public ResponseEntity selectRedis(){ long startTime = System.currentTimeMillis(); List result = memberService.selectRedis(); log.info("캐시 적용 전 :" + (System.currentTimeMillis() - startTime)+ "ms"); log.info("캐시 적용 전 :" + (System.currentTimeMi..

728x90
반응형
LIST