redis 데이터 일관성이라는 것은 수정, 저장 또는 삭제 후에 redis의 데이터도 그에 따라 변경되어야 함을 의미합니다. 그렇지 않으면 사용자가 다시 쿼리할 때 삭제된 더티 데이터를 찾을 가능성이 높습니다.
1. 캐시 일관성의 필요성
이전 글에 이어 Redis 캐시 침투 문제(다시 최적화할 수 있는 간단한 솔루션)를 해결했지만, Redis 사용 시 캐시 일관성이 문제가 됩니다. 또한 문제를 신중하게 고려해야 합니다. 예를 들어, 새 사용자를 저장한 후 데이터도 동시에 Redis 캐시에 삽입되어야 합니다. 특정 데이터 조각이 업데이트되면 캐시에서도 동시에 업데이트되어야 합니다. Redis의 기본 방법은 다음과 같습니다. 설정하지 않으면 Redis에 저장된 값은 서버가 다시 시작될 때만 동기화됩니다. 그렇다면 항상 서버를 다시 시작해야 하지 않을까요? 그러면 정말 재앙이 될 것입니다!
2. 비즈니스 시나리오
여기서는 한 가지 시나리오만 이야기하겠습니다. 다른 시나리오도 같은 방식으로 처리됩니다. 이때, 새로운 사용자가 등록되면, 새 데이터 조각을 삽입하고 동시에 다음 쿼리 중에 최신 데이터가 표시될 수 있도록 데이터 조각을 Redis에 삽입합니다.
먼저 Redis가 기본적으로 어떤 처리도 사용하지 않고 일관성 작업을 수행하는지 살펴보겠습니다. 이제 테스트 데이터베이스에 18개의 사용자 데이터가 있습니다. 이때 시스템을 시작한 후 등록하겠습니다. 19번째 데이터를 삽입하십시오. Redis에 19개의 항목이 있는지 확인하십시오.
등록 후 이제 19번째 데이터를 데이터베이스에 삽입했습니다
그런 다음 여전히 이전 기사에서 언급한 쿼리 캐시 방법을 사용하여 모든 정보를 직접 살펴보겠습니다. 하나, 마지막 것은 19가 아닌 Runqing임을 알 수 있으므로 redis는 기본적으로 캐시 일관성 작업을 수행하지 않습니다.
3. 캐시 일관성 구현(옵션 1)
실제로 일관성을 달성하는 방법은 매우 간단합니다. 삽입 작업을 수행한 후 데이터를 꺼내는 동시에 Redis 캐시에 저장합니다. 이 방법으로 캐시를 다시 쿼리할 때 새 데이터를 볼 수도 있습니다.
여기에서는 JPA의 findAll()을 직접 호출합니다. 삽입된 데이터를 업데이트하는 것이 더 효율적입니다. 다음은 이를 구현하는 방법에 대한 데모입니다. 그런 다음 새 데이터를 등록하여 동시에 캐시에서 볼 수 있는지 확인합니다. 새로 삽입된 데이터 ID는 29입니다. 캐시가 있는지 확인해 보겠습니다. 새로운 데이터
IV. Redis 캐시 일관성 구현(옵션 2)
예를 들어 예약된 작업을 설정하여 Redis에서 데이터를 정기적으로 삭제합니다. 매시간 redis의 데이터를 지우는 것, 즉 redis의 데이터를 무효화한 다음 다시 저장하거나 삭제하면 redis의 이전 데이터가 더 이상 존재하지 않으므로 데이터를 redis로 재설정하는 것과 동일하므로 데이터의 일관성을 보장할 수 있습니다.
더 많은 Redis 지식을 알고 싶다면redis 입문 튜토리얼칼럼을 주목해 주세요.
위 내용은 Redis 데이터 일관성 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!