最近参与公司一个项目,计划对在线平台的大规模查询做到快速响应,预估数据总量大概在2-3亿条,数据库并发量大概每秒1500,一年后并发大概3000每秒,经过在Redis和mongodb之间艰难的选择之后,决定使用mongodb,主要看中其平行扩展能力和GridFS上的Map/Reduce。预估项目完成上线后,高峰时段每秒并发查询在1500-3000之间。


 

 

 

 

 
#!/usr/bin/env python

from pymongo import Connection
import time,datetime

connection = Connection('127.0.0.1', 27017)
db = connection['hawaii']

#时间记录器
def func_time(func):
        def _wrapper(*args,**kwargs):
                start = time.time()
                func(*args,**kwargs)
                print func.__name__,'run:',time.time()-start
        return _wrapper

@func_time
def insert(num):
        posts = db.userinfo
        for x in range(num):
                post = {"_id" : str(x),
                        "author": str(x)+"Mike",
                        "text": "My first blog post!",
                        "tags": ["mongodb", "python", "pymongo"],
                        "date": datetime.datetime.utcnow()}