2010-10-22 43 views
0

像memcache这样的坏东西?在Python中嵌套的memcache查找,o(n)好还是不好?

1. GET LIST OF KEYS 
2. FOR EACH KEY IN LIST OF KEYS 
    - GET DATA 

我期待键约1000列左右。

如果这是不好的,我想知道是否有更好的方法来做到这一点?在这种O(n)查询可能不那么重要的情况下,我认为memcache可能足够快。例如,我绝不会在MySQL中执行此操作。

谢谢。

+0

看起来像通常索引访问我,所以没有什么不好。正如你所说的,memcached为这种访问做好准备并没有多少惩罚。 – 2010-10-22 21:23:02

+1

考虑使用http://code.google.com/p/moxi/,它将在您的应用和memcached之间进行代理,并可以帮助加速多个获取操作 – 2010-10-22 21:40:11

回答

2

这将比它需要的慢,因为每个请求都会在发送前等待前一个请求完成。如果Memcache服务器有任何延迟,这将快速加起来:如果延迟时间仅为100uS(典型的以太网往返时间),则这1000次查找将花费十分之一秒,这是很长一段时间许多应用。

这样做的正确方法是发出批量请求:同时向服务器发送许多请求,然后接收所有回复,因此不会重复执行延迟惩罚。

python-memcache模块有get_multi方法为你做这个。

+0

这很有道理。感谢您的帮助。 – ensnare 2010-10-22 22:08:56

+0

不要忘记接受答案。 – 2010-10-23 00:59:26

相关问题