typescript - Invaliderer TypeOrm automatisk cachen?


Jeg jobber med et prosjekt som bruker TypeOrm, og jeg ønsket å implementere caching av databaseforespørsler. Siden TypeOrm støtter caching direkte gjennom QueryBuilder.cache-metoden, endte koden min opp med å se omtrent slik ut:

const items = this.itemsRepository
    .createQueryBuilder('item')
    .where('item.name = :name', { name })
    .cache(
        CacheKeyMaker.makeCacheKey('item', name), // generate cache key
        300000, // 5 minutes
    )
    .getMany();

MERK: Jeg brukte ioredis som cache-driver

Det jeg la merke til da, etter en innsats eller en oppdatering i databasen, ble de bufrede nøklene fjernet fra databasen (ugyldiggjort). Invaliderer TypeOrm cache automatisk spørringer på hver tabell etter innsats/oppdatering/sletting? Og hvis ja, hvor "intelligent" er det? Invaliderer det bare nøkler som ble påvirket av oppdateringen? For eksempel, hvis jeg spør om elementer med name="box" og deretter setter inn et element med et annet navn, vil cachen fortsatt bli ugyldiggjort (fordi cachen faktisk fortsatt er gyldig i dette tilfellet).

Jeg prøvde å manuelt teste hvordan TypeOrm cache-invalidasjon fungerer, men det virket som om det fungerer inkonsistent. Jeg vil være takknemlig for all kunnskap, takk på forhånd!