0
flush_all()
が統計情報を更新していないように見える理由を誰かに教えてもらえますか?クライアントを作成して1つのキーを追加して取得した場合は、flush_all()
get_stats()
はの場合は0
を返すと予想されますが、そうではありません。 flush_all()
の後にget()
のキーが実行されてからcurr_items
になるまでは、0
に戻されません。Python memcache flush_allの動作
は、ここで私が目撃してるものの例です:
import memcache
# Create a client
mc = memcache.Client(['127.0.0.1:11211'], debug=0)
# Add a key
mc.add('foo', 'bar')
print mc.get('foo')
# Get stats
stats = mc.get_stats()
# There will be 1 current item
print "Initial get_stat(): {}".format(stats[0][1]['curr_items'])
# Flush all
mc.flush_all()
# Get stats again
stats2 = mc.get_stats()
# There shouldn't be any items, but there is 1
print "Second get_stat(): {}".format(stats2[0][1]['curr_items'])
# Get the one key we added before
mc.get('foo')
# Get stats a third time
stats3 = mc.get_stats()
# There shouldn't be any items and now there aren't
print "Third get_stat(): {}".format(stats3[0][1]['curr_items'])
実行結果:期限切れとして
bar
Initial get_stat(): 1
Second get_stat(): 1
Third get_stat(): 0
ありがとう、@barmar。強制的に削除する方法はありますか?いずれにしても、私の最初の質問にお返事いただきありがとうございます。とても有難い。 –
私はそうは思わない。どのような問題を解決しようとしていますか? – Barmar
私は、すべてのアイテムを洗い流すのに長い時間がかかっていたことに気づいていると思っていました。だから、私はflush_all()を実行し、待って、統計を取得し、curr_itemsをチェックし、curr_items> 0なら繰り返すルーチンを書いた。とにかく、私は遅れについて間違っていたことが判明しました。 GUIを使ってキーを表示していたので、赤いスリングが投げられました。私がflush_all()を実行した後、私はkesをリフレッシュし、それらが1で消えるのを見ます。もう一度あなたの助けをありがとう。 flush_all()を実行し、キーが取得できないことを知ることは、私のユースケースのために働いています。 –