php - Redis를 사용하여 동시성으로 인해 MySQL에 반복적으로 데이터가 삽입되는 문제를 해결하는 방법은 무엇입니까?
淡淡烟草味
淡淡烟草味 2017-05-16 13:01:48
0
4
713

비즈니스 시나리오

쿼리 시스템이 있습니다. 사용자가 쿼리할 때 데이터베이스에 데이터가 없으면 타사 쿼리 인터페이스를 호출하여 데이터를 얻은 다음 데이터를 데이터베이스에 삽입한 다음 검색해야 합니다. 데이터베이스에서 데이터를 가져와 사용자에게 반환합니다. [시스템은 PHP를 기반으로 개발되었습니다.]

문제 설명

여러 사용자가 쿼리하는 경우 동시에 타사 인터페이스에 여러 쿼리 요청이 발생하며 반복되는 데이터 삽입 문제가 발생합니다.

이 문제를 해결하는 방법은 무엇입니까?
타사 인터페이스를 호출할 때 Redis를 사용하여 하나의 요청만 타사로 전달되도록 함으로써 반복적인 쿼리 및 데이터 삽입을 방지할 수 있습니다. 방법? ? 구체적으로 어떻게 달성할 수 있나요?
감사합니다!

淡淡烟草味
淡淡烟草味

모든 응답(4)
伊谢尔伦

잠금 메커니즘. 코드가 작업에 들어가기 전에 작업이 잠겨 있는지 확인하십시오. 잠겨 있으면 작업을 중단하십시오. 그렇지 않으면 다음 작업으로 진행합니다. 첫 번째 단계는 작업을 잠근 다음 코드를 실행하는 것입니다. 작업 잠금을 해제하는 것을 잊지 마세요. 그렇지 않으면 실행을 수행할 수 없습니다.

잠금 코드는 여러 가지가 있는데, 위에 제시된 코드가 그 중 하나입니다. Redismemcachecache 파일을 사용할 수 있으며, 작업 동시성이 상대적으로 높을 경우 위와 같은 redis를 사용하는 것이 좋습니다. (실제로는 문자열 데이터 형식을 사용하여 잠금 키 {lock}에 값을 할당하는 것이며, 잠금 해제 시 키 값이 지워지거나 0의 값이 할당됩니다)

으아악
为情所困

으아악

小葫芦

으아아아

迷茫

포스터에서 언급한 redis "잠금"은 당연히 가능합니다
그리고 쿼리된 데이터에 고유 ID를 설정할 수 있나요? 이것은 이중 검증입니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿