복붙노트

[REDIS] 최신 잡는 유지하는 방법

REDIS

최신 잡는 유지하는 방법

memcached를하거나 레디 스 데이터 저장 캐싱을 위해 사용된다. 값이 변경 될 때 어떻게 캐시가 업데이트되고있다?

예를 들어. 내가 캐시에서 처음으로 키 1을 읽고 놓친 경우에, 나는 값 1을 당겨 캐시에 키 1 = 값 1을 넣어.

그 후 KEY1의 값은 값 2로 변경하는 경우. 어떻게 캐시 값이 업데이트되거나 무효화?

키 1의 값에 변화가있을 때마다 그 의미합니까. 어느 응용 프로그램이나 데이터베이스의 필요성이 키 1 캐시에 있는지 확인하고 업데이트?

해결법

  1. ==============================

    1.당신은 캐시를 사용하고 있기 때문에, 당신은 어떤 시점에서 데이터 불일치 문제, 즉 용납 할 수 있고, 캐시의 데이터는 데이터베이스의 데이터 다르다.

    당신은 캐시를 사용하고 있기 때문에, 당신은 어떤 시점에서 데이터 불일치 문제, 즉 용납 할 수 있고, 캐시의 데이터는 데이터베이스의 데이터 다르다.

    당신은 값이 변경 될 때마다 캐시에 값을 업데이트 할 필요가 없습니다. 그렇지 않으면, 전체 캐시 시스템은 매우 복잡 할 것이다 (당신이 캐시 된 키의 목록을 유지해야한다 예를 들어), 그리고 또한 그렇게 할 필요 수 있습니다 (예 : 키 - 값은 한 번만 사용하지 않고, 필요 수 있습니다 ) 그것을 더 이상 업데이트합니다.

    일반적으로 설정하거나 캐시에 키 - 값 쌍을 업데이트 외에, 우리는 또한 각 키에 대한 시간 제한을 설정합니다. 그 후, 클라이언트는 캐시에서 키 - 값 쌍을 얻을 수 있습니다. 키가 타임 아웃에 도달하는 경우에는, 캐시 시스템은 캐시에서 키 - 값 쌍을 제거한다. 이 호출되는 키가 만료되었습니다. 다음 번에, 캐시에서 해당 키를 얻기 위해 시도하는 클라이언트는 아무 것도 얻을 수 없습니다. 이것은 캐시 미스라고합니다. 이 경우, 클라이언트는 데이터베이스에서 키 - 값 쌍을 얻고, 새로운 타임 아웃으로 캐시로 업데이트 할 수 있습니다.

    키가 캐시에 만료되지 않은 상태에서 데이터가 데이터베이스에 업데이트 된 경우, 클라이언트는 일치하지 않는 데이터를 얻을 것이다. 키가 만료 된 때, 그 값은 데이터베이스에서 검색 및 일부 클라이언트가 캐시에 삽입됩니다. 데이터가 다시 변경 될 때까지 그 후, 다른 클라이언트는 업데이트 된 데이터를 얻을 것이다.

    일반적으로 만료 정책의 두 가지 종류가 있습니다 :

    데이터가 오래된 수 있습니다 동안 오랜 시간 동안 큰 제한 시간은 크게 데이터베이스의 부하를 줄일 수 있습니다. 데이터베이스가 무거운 부하를해야합니다 동안 작은 시간 제한은 가능한 한 최대 최신 데이터를 유지할 수 있습니다. 당신은 시간 제한을 설계 할 때 트레이드 오프 균형을 가지고 그래서.

    레디 스 키를 만료하는 방법에는 다음 두 가지가 있습니다 :

  2. from https://stackoverflow.com/questions/45384889/how-to-keep-caching-up-to-date by cc-by-sa and MIT license