Un cache peut être utilisé pour améliorer les performances d'accès à une ressource donnée. Lorsqu'il existe plusieurs caches de ce type pour une même ressource, comme le montre l'image, cela peut entraîner des problèmes. La cohérence des caches ou Cache coherency fait référence à un certain nombre de façons de s'assurer que toutes les caches de la ressource ont les mêmes données, et que les données dans les caches ont un sens (appelé intégrité des données). La cohérence du cache est un cas particulier de cohérence de la mémoire.
Il peut y avoir des problèmes s'il y a plusieurs caches d'une ressource mémoire commune, car les données dans le cache peuvent ne plus avoir de sens, ou un cache peut ne plus avoir les mêmes données que les autres. Un cas fréquent où le problème se pose est celui du cache des unités centrales de traitement dans un système multiprocesseur. Comme le montre la figure, si le client supérieur possède une copie d'un bloc de mémoire d'une lecture précédente et que le client inférieur modifie ce bloc de mémoire, le client supérieur pourrait se retrouver avec un cache de mémoire non valide, sans le savoir. La cohérence du cache est là pour gérer de tels conflits et maintenir la cohérence entre le cache et la mémoire.

