ヒマをみつけてWeb開発
その場の思い付きを、ヒマをみつけてWebサイトにしてみるブログ

memcachedのIncrementでハマる

Monday, 19 May 2008 14:32 by sabro

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がおかしな実装してるだけかなあ。

Tags:  
Categories:   .NET
Actions:   Permalink | Comments (0) | Comment RSSRSS comment feed

Add comment




biuquote
  • Comment
  • Preview
Loading