2
Membase Client(Enyim)を使用してキーが存在するかどうかを確認する方法を知っている人はいますか?私はキャッシュからオブジェクト全体を引っ張ってはいけません。ちょうどそこにあるかどうかを確認してください。Membaseクライアント - ContainsKey?
Membase Client(Enyim)を使用してキーが存在するかどうかを確認する方法を知っている人はいますか?私はキャッシュからオブジェクト全体を引っ張ってはいけません。ちょうどそこにあるかどうかを確認してください。Membaseクライアント - ContainsKey?
は、残念ながらはmemcachedの動作を「存在」が存在しませんが、あなたが行うことができますいくつかのハッキングがあります。
client.Store(StoreMode.Add, keyToCheck, null, new Date(2000, 1, 1));
の追加が失敗しませんが、この場合にはfalseを返しますが。client.Append(keyToCheck, new ArraySegment<byte>(new byte[0]))
これは、キーが存在する場合はtrue
を返しますが、値は変更されません。client.Cas(StoreMode.Set, keyToCheck, null, UInt64.MaxValue)
これは、アイテムが存在する場合にも失敗します。キーが存在しない場合は、それらの後にクリーンアップする必要があるように、すべての3つの操作は、アイテムを作成しますのでご注意下さい。
また、複数のスレッドが同じアイテムをチェックしている場合、あるスレッドが別のスレッドの一時アイテムを実際のものとして扱う可能性があります。
Thanks Attila、あなたのハッキングを使用して、適切なハウスキーピングでContainsKey拡張メソッドを作成します。 :) – MindWire
あなたが私に次のバージョンに含めることを要求するプルとして私に送ることができるならば。 –