Cache coherence refers to maintaining consistency between data stored in caches and the main memory in a system with multiple processors that share memory. Without cache coherence protocols, modified data in one processor's cache may not be propagated to other caches or memory. There are different levels of cache coherence - from ensuring all processors see writes instantly to allowing different ordering of reads and writes. Cache coherence aims to ensure reads see the most recent writes and that write ordering is preserved across processors. Directory-based and snooping protocols are commonly used to maintain coherence between caches in multiprocessor systems.