찾다

 >  Q&A  >  본문

Redis 缓存和数据库之间的数据校验该怎么做?

数据库是 MySQL,Redis 主要用来读缓存,现需要检测数据和缓存之间的一致性,确保从缓存读取的数据是最新的。该怎么确保这一点呢?

怪我咯怪我咯2798일 전744

모든 응답(3)나는 대답할 것이다

  • 怪我咯

    怪我咯2017-04-22 08:58:29

    1. 쿼리 등 모델을 인스턴스화할 때 테이블의 총 레코드 수, 마지막 수정 시간 및 기타 정보를 모델의 메소드에 저장할 수 있습니다
    2. 데이터 쿼리 시 쿼리 조건과 테이블 정보를 조합하여 캐시 키를 계산하여 캐시에 씁니다
    3. 캐시를 얻을 때 쿼리 조건과 테이블 정보를 결합하여 캐시 키를 계산하고 캐시를 쿼리합니다. 테이블 데이터가 수정되어 캐시를 적중할 수 없는 경우 최신 결과를 가져와 새 키로 저장합니다. 🎜>

    실제 개발에서는 모델의 CUD 작업 중에 MVC 프레임워크가 사용되며, 데이터 일관성을 보장하기 위해 모델과 관련된 모든 캐시 키가 자동으로 삭제됩니다.

    이를 위해서는 프레임워크 사용에 있어서 상대적으로 높은 기준이 필요하며, 모델 캐싱 사양에 따라 캐시를 등록해야 합니다.

    현재 일반적인 애플리케이션은 CRUD 이후 목록의 캐시된 데이터를 업데이트하는 방법입니다.

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-22 08:58:29

    캐시를 확인하고, 그렇지 않은 경우 데이터베이스에 있는 데이터를 캐시에 덤프합니다.
    데이터 업데이트가 있는 경우 데이터 일관성이 그다지 높지 않으면 캐시의 데이터에 ttl을 제공하고, 데이터 일관성이 매우 높으면 데이터를 업데이트할 때 캐시를 지웁니다.

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-22 08:58:29

    버전 정보를 표시하기 위해 각 키에 필드를 추가할 수 있습니다. 업데이트된 데이터의 버전 번호를 업데이트합니다. Redis를 쿼리할 때 키+버전 번호를 사용하세요.

    회신하다
    0
  • 취소회신하다