gpt4 book ai didi

Python内存缓存flush_all行为

转载 作者:太空宇宙 更新时间:2023-11-03 15:56:27 25 4
gpt4 key购买 nike

我想知道是否有人可以帮助解释为什么调用 flush_all() 似乎没有更新统计信息。如果我创建一个客户端,添加 1 个 key ,获取它,然后 flush_all() 我希望后续的 get_stats() 返回 0 > 对于 curr_items,但事实并非如此。直到 flush_all() 之后执行 key 的 get() 才会将 curr_items 设置回 0.

这是我所目睹的示例:

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

最佳答案

flush 操作实际上并不从内存中删除任何内容,它只是将所有内容标记为已过期。在您尝试访问过期项目之前,它们实际上不会被删除。

关于Python内存缓存flush_all行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40728682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com