>데이터 베이스 >Redis >Redis 캐시 지연 이중 삭제는 무엇을 의미합니까?

Redis 캐시 지연 이중 삭제는 무엇을 의미합니까?

王林
王林앞으로
2023-05-26 15:49:513162검색

캐시가 업데이트되지 않고 삭제되는 이유는 무엇인가요?

데이터를 업데이트할 때 분산 트랜잭션 문제가 발생하여 캐시 업데이트는 성공하지만 데이터베이스 수정은 실패할 수 있습니다. 데이터베이스 수정이 실패하고 캐시만 삭제되더라도 다음 쿼리는 여전히 데이터베이스에서 직접 데이터를 가져오며 더티 데이터는 생성되지 않습니다.

지연 이중 삭제란 무엇인가요?

즉, 엔터티 클래스를 추가, 삭제, 수정하는 경우 해당 엔터티 클래스의 캐시를 삭제해야 합니다. 삭제 위치는 데이터베이스 작업 방법 전과 후입니다.

모순에 의한 증명 방식 채택

먼저 삭제만

Redis 캐시 지연 이중 삭제는 무엇을 의미합니까?

나중에 삭제만

Redis 캐시 지연 이중 삭제는 무엇을 의미합니까?

결론

따라서 삭제 전, 삭제 후 모두 문제가 있다는 결론을 내릴 수 있습니다. 따라서 지연 이중 삭제 전략이 채택됩니다

생각 2: 왜 지연되는가

아직도 모순에 의한 증거입니다. 아래 그림의 상황은 이중 삭제 후에도 이전 캐시가 여전히 존재하는 상황입니다. 지연은 데이터베이스 수정 -> 캐시 지우기 전에 다른 트랜잭션의 캐시 변경이 완료되었는지 확인하기 위한 것입니다.

Redis 캐시 지연 이중 삭제는 무엇을 의미합니까?

보충: 캐시 일관성을 보장하기 위해 이중 삭제를 지연해야 하는 이유

캐시 일관성을 보장하기 위해 이중 삭제를 지연해야 하는 이유

  • 데이터베이스 데이터를 수정하기 전에 redis를 먼저 삭제해야 합니다. 데이터베이스 데이터 수정과 Redis 데이터 삭제 사이의 간격 동안 적중이 발생하면 이 데이터가 Redis에 존재하지 않는다는 것을 보장하는 것입니다. 삭제 작업을 수행하지 않으면 데이터베이스 데이터가 수정된 후에도 Redis에서 이전 데이터를 읽을 수 있으므로 데이터 불일치가 발생합니다.

  • 두 번째 삭제는 데이터베이스 데이터 수정 후, 이번에는 첫 번째 Redis 삭제와 데이터베이스 데이터 수정 사이의 데이터를 다시 삭제해야 합니다. 요청이 있으면 이전 데이터가 Redis에 다시 캐시되지만, 이번에 삭제하지 않으면 데이터베이스의 이전 데이터가 Redis에 존재하게 됩니다.

  • 왜 데이터베이스를 두 번째 수정한 후 일정 기간 동안 Redis 삭제를 연기해야 ​​합니까?

  • 이전 데이터베이스 읽기를 기다리려면 데이터가 캐시에 기록될 때까지 기다린 다음 마지막으로 더티 데이터를 삭제하므로 데이터베이스에서 데이터베이스로 데이터가 전송되는 시간입니다. 서버 + 캐시 쓰기

Redis 캐시 지연 이중 삭제는 무엇을 의미합니까?

그러나 지연된 이중 삭제의 지연 시간은 매우 어려우므로 지연된 이중 삭제는 권장하지 않습니다

종합적인 고려에 따르면 데이터베이스를 먼저 수정하더라도 삭제 후 캐시에서는 이전 데이터를 읽는 데 일정 시간이 걸립니다. 이는 일반적으로 허용됩니다.

캐시가 시간 내에 삭제되는 한 다른 스레드는 최신 값을 읽을 수 있습니다.

동시에 캐시가 삭제되는지 확인하려면 mq를 사용하여 캐시가 삭제되는지 확인할 수 있습니다.

mq에서 메시지가 반복적으로 소비되지 않으면 다른 사람에게 전달됩니다. 소비를 위한 소비자(캐시는 삭제됩니다)

위 내용은 Redis 캐시 지연 이중 삭제는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제