memcachedにIncrementっていうメソッドがあって、キャッシュ上の数値を排他的にインクリメント出来る。 つまり、他のクライアントに更新が上書きされることがないので、ページビューのカウントとかには、かなり使えるめそっど♪
自分も、ページビューのインクリメントに使おうとしてたんだけど、おもっきりハマッてしまった。 数値の1をキャッシュに格納した後に、Incrementをすると、なぜか値が、538976305と一気に飛んでしまう。 2回見ただけで、5億ページビュー達成だ \(^o^)/
いろいろ試したけどダメで、どうしようかと思ったんだけど。 Enyim Memcachedのソースをダウンロードして、Incrementメソッドのコメントを見ると 「The item must be inserted into the cache before it can be changed. The item must be inserted as a T:System.String.」 って書いてあった。
ないわー。インクリメントする値なのに、初期値を文字列で登録しないといけないらしい ( ̄□  ̄|| 実際に、初期値を「1」でなく「"1"」で登録したら、無事インクリメント出来てしまった。
こんな変な仕様が標準なんだろうか。Enyim Memcachedがおかしな実装してるだけかなあ。