キャッシュとデータベースの整合性

MemcacheとMySQLのデータ不整合をPropelPDOで解決してみる」を読みました。

memcache に絡むデータ不整合を解決すると題しているわけですが…。

前提として、キャッシュというのはいつ消えるかわからないものと思わなければなりません。
memcachedは無限に多くのデータをキャッシュできるわけではなく、オブジェクトがいっぱいになったら何らかのアルゴリズム(LRUとか)でオブジェクトを削除するはずです。

キャッシュはクリアしなくても勝手に消えると考えなければなりません。

このエントリの「良い例」は確かに「悪い例」より良くなっています。
しかし一般論としては、「良い例」でも「悪い例」と同じタイミングでキャッシュが削除されることがある。
運用上、キャッシュが自動的に削除されないような工夫を行っていれば問題ないとは思います。

RDBMSを離れると、データベースの整合性を取るのは本当に大変なんですよね…。