数据库是 MySQL,Redis 主要用来读缓存,现需要检测数据和缓存之间的一致性,确保从缓存读取的数据是最新的。该怎么确保这一点呢?
怪我咯2017-04-22 08:58:29
1. 쿼리 등 모델을 인스턴스화할 때 테이블의 총 레코드 수, 마지막 수정 시간 및 기타 정보를 모델의 메소드에 저장할 수 있습니다
2. 데이터 쿼리 시 쿼리 조건과 테이블 정보를 조합하여 캐시 키를 계산하여 캐시에 씁니다
3. 캐시를 얻을 때 쿼리 조건과 테이블 정보를 결합하여 캐시 키를 계산하고 캐시를 쿼리합니다. 테이블 데이터가 수정되어 캐시를 적중할 수 없는 경우 최신 결과를 가져와 새 키로 저장합니다. 🎜>
이를 위해서는 프레임워크 사용에 있어서 상대적으로 높은 기준이 필요하며, 모델 캐싱 사양에 따라 캐시를 등록해야 합니다.
怪我咯2017-04-22 08:58:29
캐시를 확인하고, 그렇지 않은 경우 데이터베이스에 있는 데이터를 캐시에 덤프합니다.
데이터 업데이트가 있는 경우 데이터 일관성이 그다지 높지 않으면 캐시의 데이터에 ttl을 제공하고, 데이터 일관성이 매우 높으면 데이터를 업데이트할 때 캐시를 지웁니다.
伊谢尔伦2017-04-22 08:58:29
버전 정보를 표시하기 위해 각 키에 필드를 추가할 수 있습니다. 업데이트된 데이터의 버전 번호를 업데이트합니다. Redis를 쿼리할 때 키+버전 번호를 사용하세요.