<p>Okay I know I asked about this before, and the answer was basically cache data that doesn't change often.</p>

<p>Well what does one do when at least 99.9% of the data changes?</p>

<p>In my project the only tables that doesn't get updated or won't get updated frequently would be the member profile info (name/address, and settings)</p>

<p>So how does one still enable some kind of caching but keep and make sure the data being viewed is updated when changes are applied?</p>

I guess, it's not really 99.9% of all data that changes, but it's in 99.9% of all data locations that changes happen.
For example, if you are running a bulletin board, that means that there will be a steady stream of new posts, but old posts will remain the same, and even old threads will stay unchanged for a long, long time.
In that case, you'll need a way to invalidate old cached data, so that you can build a cache as soon as a thread (in the example) is viewed. If there is a change to ONE of these threads (i.e. when someone adds a new post), this one cached item is deleted/marked outdated, so the next time it is viewed, it will be rebuilt. Other items that still haven't changed will use the cache, though.