44,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨실전! Redis 활용
ec2 내 Redis 잘못된 host 연결
문제는 이렇습니다.prodRedisUrl = redis://:password@ec2프라이빗ip:6379/0로 url을 보냅니다.그리고 ec2 내 redis bind를 ec2 프라이빗 Ip로 설정하고, 리스닝 하고 있는 상태입니다.그러면 정상적이라면, 서버가 배포 됐을 때 prodRedisUrl로 redis와의 연결이 성공적으로 연결 됩니다.근데 어이없는 문제가 발생합니다요청하지도 않은 localhost로 redis서버에 연결하려고 하는 것입니다.그래서 시나리오를 세워서 반대로 테스트를 해봤습니다 !!!!prodRedisUrl = redis://:password@127.0.0.1:6379/0로 하고, 일부러 로컬호스트를 보내 봤습니다. 물론 ec2 내 redis.conf의 bind를 수정 했습니다. bind 127.0.0.1테스트 해봤더니 127.0.0.1로 접속은 완료 됐지만이제는 반대로 ec2 프라이빗 Ip로 연결을 요청해서 실패하네요 ㅋㅋㅋㅋㅋ도대체 요청하지도 않은 ec2에서 그리고 알지도 못하는 프라이빗 ip로 redis서버에 접속하려는걸까요??????----------------------------------------즉, 정리하자면 요청하지도 않은 host로 Redis서버에 접속한다 !! 입니다.로컬에서 테스트 할 때는 아무런 문제 없이 잘 작동하더니만 ec2에 배포하고 연결하려고 하니까 이 말썽입니다... 도저히 이해가 되지도 않고 원인 파악도 힘드네요,, =====추가적으로 redisurl 로그도 정상적으로 출력되고, 그리고 문자열로도 넣어봤지만 똑같은 증상이 발생했습니다.
- 해결됨실전! Redis 활용
Stable Cache Invalidation 해결방안
캐싱을 위해 redis를 사용할 경우 db에 값이 변경되었다면 redis에 있는 값과 일치하지 않는 정합성 문제가 일어날수 있다는 것은 알았습니다. 그러면 이걸 해결하기 위한 대표적인 방법들이 무엇이 있을까요??
- 해결됨실전! Redis 활용
Stale cahe invalidation 예시
구체적인 방법 예시가 없어 잘 와 닿지 않는데 많이 사용하는 컨벤션 예시가 있을까요?
- 해결됨실전! Redis 활용
블룸필터-중복이벤트 제거 예시
레디스가 데이터베이스가 받게 될 부하를 분산시켜준다면데이터베이스를 쓰는 모든 서비스에 이 기능이 있으면 좋은가요? 특히 더 활용성이 있는 산업, 도메인, 기능이 있을까요?ex. 쓰기 처리가 많은 서비스, 읽기 처리가 많은 서비스.. 등 어떤 상황에서 실무에 적용할 수 있을지 예시가 더 있으면 좀 더 이해하기 좋을 거 같습니다..!
- 해결됨실전! Redis 활용
온라인 상태 표시
온라인 상태를 비트맵으로 사용했을 때의 특히 좋은 점이 무엇 일까요? 보통 인스타나 페북 활동중도 비트맵을 쓰나요?비트맵 데이터타입의 장점은 적은 메모리를 사용하여 바이너리 상태값을 저장한다. 로 강의에서 배웠는데 상태값이 0, 1로 표현될 수 있어서 인가요? 프로세스가 1분 단위에 상태만 볼수있는거로 이해했는데 맞을까요? 예를 들어,1분동안 이전에 요청이 없었으면 -> 오프라인1분동안 요청이 있었으면 키에대한 데이터가 1이므로 -> 온라인으로 처리된다.
- 해결됨실전! Redis 활용
해시-로그인세션 꼭 해시를 쓰는 이유가 무엇인가요?
다른 데이터 타입이 아닌 해시를 쓰는 이유가 무엇인가요?string도 있고 json도 있는데 선정하신 이유가 궁금합니다.
- 해결됨실전! Redis 활용
개인 블로그 공유
개인블로그에 인강 내용이나 자료개인적으로 정리하고 싶은데 괜찮으신지 문의드립니다. 출처는 남길 예정입니다.
- 해결됨실전! Redis 활용
subscriber, publisher 두개 같은 포트로 띄울 수 있나요?
이미 레디스 cli가 띄워져 있다고 해서요..
- 해결됨실전! Redis 활용
외부 클라이언트에서 도커 redis-stack-server 접속 시, 블룸필터 명령어가 없다고 합니다.
도커 컨테이너 > 레디스 서버 내에서 redis-cli 실행 후, BF.MADD 명령어를 실행하면, 아래와 같이 잘 실행됩니다.그러나, 외부(JDBC) 커낵션을 통한 접속에서는이처럼 명령 실행을 전혀 할 수가 없습니다.(BF.XX 명령어를 제외하고, 이전 강의내용의 명령어는 잘 실행됩니다)이걸 해결해보려 시도해본 것은 아래와 같습니다.docker-compose.yml 볼륨마운팅 설정/redis-stack.conf 파일 내용의 변경 부분:bind 0.0.0.0protected-mode nodocker-compose.yml 내용입니다.version: "3.8" services: redis: image: redis/redis-stack-server hostname: redis container_name: redis-stack-server command: /entrypoint.sh ports: - "6379:6379" volumes: - ../redis/conf/7.2.conf:/redis-stack.conf restart: always networks: - redis-network networks: redis-network: driver: bridge외부접속에서 명령 실행을 막는 기능을 어떻게 해제할 수 있을까요?
- 해결됨실전! Redis 활용
트랜잭션(multi) 질문입니다.
Multi 사용시 key 나 로그인한 세션에 lock 이 걸리진 않나요? 트랜잭션이 유지되는 시간이 있나요? 무한정 트랜잭션이 끝나길 기다리진 않을 것 같습니다.
- 해결됨실전! Redis 활용
Sliding Window Rate Limiter에 대한 질문
예시 그림을 보면 새로운 요청을 add할때 ZADD 1.1.1.1 1693494130 1693494130 형식으로 add를 하던데 이러면 혹시 동일한 timestamp에 여러번 요청이 올 경우는 어떻게 구분하나요? 가령 1693494130에 3번의 요청이 동시에 발생한다면 스코어는 1693494130로 하고 item을 1693494130_0이런식으로 index를 추가해야할 것 같아서요
- 해결됨실전! Redis 활용
Hashes를 실제로 자주 사용하나요?
코드단에서 바라봤을 때, JSON Strings를 활용하면 약간의 메모리 낭비나 매번 JSON 전체를 불러와야 한다는 단점이 있지만 객체가 중첩될 경우 사용할 수 없고, 저장 및 불러오기 방식도 다소 번거로운 Hashes 데이터 타입을 굳이 사용할 이유가 있는지 잘 모르겠습니다..
- 해결됨실전! Redis 활용
List, Set, ZSet의 SORT
안녕하세요. 강의 잘 보고 있습니다. LIST, Set, ZSet의 item을 정렬하여 반환하는 SORT 명령어의 시간 복잡도가 O(N)이라고 설명해주셨는데, 어떻게 O(N)이 나온건지 궁금합니다.
- 해결됨실전! Redis 활용
4분 57초에요
SET inflearn-redis:ko:price 200 은 어떤 명령어 인가요?OK 가 뜨긴 했는데다시 get inflearn-redis 해도 전이랑 변함 없이{\"price\":100,\"language\":\"ko\"} 가 리턴이 되서요asdf