1.Mongodb
版本:mongodb-linux-x86_64-static-legacy-1.8.1.tgz
下载地址:http://www.mongodb.org/downloads
mongodb提供两个下载版本: mongodb-linux-x86_64-1.8.1.tgz 和 mongodb-linux-x86_64-static-legacy-1.8.1.tgz
区别:只有在linux是老系统,mongodb无法启动时,或者出现浮点数异常,才使用"legacy static“版,
尽可能使用mongodb-linux-x86_64-1.8.1.tgz
2.简介 (以下内容从网上摘抄的,原址:http://hi.baidu.com/moioo/blog/item/8d464a8f05eb37f6513d923e.html)
MongDB是一个可扩展,高性能、开源、模式自由、面向文档的数据库,并不是我们通常用的RDBMS,属于“NoSql”的范畴。
它和一般的基于key-value的db还是不大一样,因为他本身的功能很强大,已经实现了类似于SQL的很多功能,
如index、limit、skip、group。。。。。
当应用的数据量达到海量级,传统的Mysql,Oracle 不能满足我们的性能需求,而对于数据还有一定的查询需求时,可以考虑
MongoDB。
3.安装: 由于RHEL4.3使用mongodb-linux-x86_64-1.8.1.tgz 版本,
会出现错误: error while loading shared libraries: requires glibc 2.5 or later dynamic linker
所以使用版本:mongodb-linux-x86_64-static-legacy-1.8.1.tgz
1)创建mongodb程序运行目录及默认的数据存放目录: #mkdir -p /usr/local/mongodb-1.18.1
#mkdir -p /data/db
2)解压缩: #tar zxf mongodb-linux-x86_64-static-legacy-1.8.1.tgz -C /usr/local/mongodb
3)cd到mongodb安装目录,运行: #./mongod --dbpath=/data/db/ --logpath=/data/db/mongodb.log --logappend
4.python测试 1)RHEL4.3默认的python版本为 2.3.4. 升级为python 2.7.1 (1)下载python2.7.1的源码包 http://www.python.org/getit/,版本:Python-2.7.1.tgz 安装:#tar zxf Python-2.7.1.tgz #cd Python-2.7.1
#configure
#make
#make install
修改path #mv /usr/bin/python /usr/bin/python_2.3 //将原始的2.3版本重命名
#mv /usr/local/bin/python2.7 /usr/bin/python //将新生成的2.7版本考到/usr/bin/目录下
#python -V //查看python新版本是否生效
(2)安装python2.7.1版本对应的setuptools 下载:http://pypi.python.org/pypi/setuptools 版本:setuptools-0.6c11-py2.7.egg
安装:#chmod +x setuptools-0.6c11-py2.7.egg
#./setuptools-0.6c11-py2.7.egg
2)下载并安装mongodb的python驱动包 下载http://www.mongodb.org/downloads,版本:pymongo-1.11.tar.gz
安装:#tar zxf pymongo-1.11.tar.gz #cd pymongo-1.11
#python setup.py build
#python setup.py install
测试:#python >>>import pymongo
3)入库速度测试
测试脚本
########################################################
#!/usr/bin/python
#-*- coding: utf-8 -*-
import os,sys
import random
import string
import time
import pymongo
insertinfo={}
valid_letters="ABCDEFGHIJKLMNOPQRSTUVWXYZbcdefghijklmnopqrstuvwxyz1234567890"
def getrandstring(length):
return "".join([random.choice(valid_letters) for i in range(0,length)])
conn=pymongo.Connection("127.0.0.1",27017) //创建数据库连接
conn.drop_database("test") //删除已有的数据库 ‘test’
print "database_names:%s" % conn.database_names() //打印当所有的数据库名
print "nodes :%s" % conn.nodes //打印节点名称
print "port :%s" % conn.port //打印单口号
print "host :%s" % conn.host //打印host地址
#print "serverinfo :",conn.server_info() //打印server信息
db=conn.test //创建一个数据库连接
mycollection=db.test_collection_2 //创建一个collection。若test库和此collection并不存在
则此时也并未实际创建,直到插入数据时,才生成。
print "dbname :%s
" % db.name //打印当前连接的库名
print "test_collection_2 index info:",mycollection.index_information() //打印collection的索引信息
print "connection information ------------------"
for myconn in db.collection_names(): //打印当前连接的所有colleciton
print myconn
#print "insert data ----------------------"
print mycollection.count() //打印当前collection的数据条数
begtime=time.time()
pretime=begtime
for i in range(0,1000000): //生成循环的随机字符串
insertinfo["_id"]=i
//手动插入“_id”值. insertinfo["y"]=str(getrandstring(random.randint(15,30)))
insertinfo["z"]=str(getrandstring(random.randint(15,30)))
insertinfo["m"]=str(getrandstring(random.randint(15,30)))
mycollection.insert(insertinfo,safe=False,check_keys=False)
//向当前的collection插入数据 if db.error() is not None: //检测插入是否成功,否则输出错误信息
print db.error()
print insertinfo
print mycollection.index_information()
if i % 10000==0:
print i,mycollection.count(),(time.time()-pretime)
pretime=time.time()
endtime=time.time()
print "run time: %s" % (endtime-begtime)
"""
print "insert finish,outpu insert info------------------"
for item in mycollection.find():
for key in item.keys():
print key+":",item[key]
"""
conn.disconnect() //关闭数据库连接
########################################################
测试结果: 本地vmware虚拟机:512M内存,单cpu。
100万数据,插入时间:404.967557907秒。
生成的数据文件列表: #ls -l /data/db
##########################
-rw------- 1 root root 64M Jun 13 09:37 test.0
-rw------- 1 root root 128M Jun 13 09:37 test.1
-rw------- 1 root root 256M Jun 13 09:40 test.2
-rw------- 1 root root 16M Jun 13 09:37 test.ns
##########################MongoDB的Python驱动PyMongoRHEL5.5下MySQL Proxy 安装相关资讯 python MongoDB
- Python 为什么要迁移到 Github (01月26日)
- Python 决定迁移到 GitHub (01月03日)
- 使用MongoDB C#官方驱动操作 (12/31/2015 16:27:56)
| - MongoDB 3.3.0 发布下载 (01月14日)
- MongoDB 3.2版WiredTiger存储引擎 (01月02日)
- 进程监控工具Supervisor 启动 (12/26/2015 10:49:57)
|
本文评论 查看全部评论 (0)