Redis

Redis를 활용한 외부 Api 요청 개선하기

Dev갱이 2024. 9. 24. 21:46
728x90
현재 프로젝트에서는 Tour-Api 서비스를 이용하고 있는데 외부 api를 호출 할때 Redis를 이용하여 어떻게 하면 더 최소로 호출 하게 만들 수 있을지에 대해서 생각 해봐야한다.
1. 외부 api를 request 마다 계속 호출하게 되면 비용 과금 문제가 발생한다.
2. 똑같은 결과값을 가진다고 가정 했을 때 현재 서버에서 외부 Api 서버를 호출 할때 걸리는 시간이 발생 한다.

 

도의 정보를 가져오는 api 

해당 api의 결과를 보게되면 알 수 있듯이 왠만하면 절대 바뀌지 않을 정보들이다.
"list": [
            {
                "rnum": 1,
                "code": "1",
                "name": "서울"
            },
            {
                "rnum": 2,
                "code": "2",
                "name": "인천"
            },
            {
                "rnum": 3,
                "code": "3",
                "name": "대전"
            },
            {
                "rnum": 4,
                "code": "4",
                "name": "대구"
            },
            {
                "rnum": 5,
                "code": "5",
                "name": "광주"
            },
            {
                "rnum": 6,
                "code": "6",
                "name": "부산"
            },
            {
                "rnum": 7,
                "code": "7",
                "name": "울산"
            },
            {
                "rnum": 8,
                "code": "8",
                "name": "세종특별자치시"
            },
            {
                "rnum": 9,
                "code": "31",
                "name": "경기도"
            },
            {
                "rnum": 10,
                "code": "32",
                "name": "강원특별자치도"
            },
            {
                "rnum": 11,
                "code": "33",
                "name": "충청북도"
            },
            {
                "rnum": 12,
                "code": "34",
                "name": "충청남도"
            },
            {
                "rnum": 13,
                "code": "35",
                "name": "경상북도"
            },
            {
                "rnum": 14,
                "code": "36",
                "name": "경상남도"
            },
            {
                "rnum": 15,
                "code": "37",
                "name": "전북특별자치도"
            },
            {
                "rnum": 16,
                "code": "38",
                "name": "전라남도"
            },
            {
                "rnum": 17,
                "code": "39",
                "name": "제주도"
            }
        ],
자주 변경되지 않는 데이터에 Look-aside패턴 전략을 사용하는게 적합하다.

 

 

redis의 아주 기본적인 사용인 Look-aside 패턴으로 "areaCode1:100:1:1" 이 시군구들의 정보를 가져오는 캐시고
"areaCode1:100:1"이 큰 도시들 가져오는 api로 아주 잘 캐싱되고 있다.

 

서비스 분류 코드조회 Api 개선

 

serviceCategories도 아주 잘 저장된다.
728x90