tokyo Cabinet在ubuntu 10.04下的安装与调试
大致类容是网上转的,加粗加红的部分为自己修订<div class="blog_content">tokyo cabinet: 下载 wget http://1978th.net/tokyocabinet/tokyocabinet-1.4.36.tar.gz
依靠包:
zlib: sudo apt-get install zlib1g-dev
bzip2: sudo apt-get install libbz2-dev
安装:
tar zxvf tokyocabinet-1.4.36.tar.gz
cd tokyocabinet-1.4.36
./configure
make
sudo make install
tokyo tyrant: 下载 wget http://1978th.net/tokyotyrant/tokyotyrant-1.1.37.tar.gz
安装:
tar zxvf tokyotyrant-1.1.37.tar.gz
cd tokyotyrant-1.1.37
./configure
make
sudo make install
运行tokyo tyrant
ttserver -dmn -pid /home/mk2/ttserver/tt.pid -log /home/mk2/ttserver/tt.log -le -ulog /home/mk2/ttserver/ -ulim 128m /home/mk2/ttserver/data.tcb#bnum=100000
# tcb: b+ tree格式, 在内存中缓存最热门的10w条查询
更改执行权限:sudo chmod a+x pytyrant.py
运行pytyrant.py, 代码在: http://code.google.com/p/pytyrant/source/browse/trunk/pytyrant.py
没有任何异常输出? 那就成功了!!!
与memcache对比测试
benchmark.py:
!/usr/bin/envpython
<div class="cnblogs_code">#-*-coding:utf-8-*-
"""benchmarktestforpytyrant
"""
importtime
importthreading
importmemcache
importpytyrant
classworker(threading.thread):
def__init__(self,index,bench,count=1000):
self._count=count
self._bench=bench
self._index=index
super(worker,self).__init__()
defrun(self):
self._bench(self._count,self.show)
defshow(self,s):
print'thread%d'%self._index,s
def_benchmark_threads(bench,count,threads):
print'-'*80
print'%s:%dthreads,%dtimes'%(bench.__name__,threads,count)
ts=[]
foriinrange(threads):
t=worker(i,bench,count/threads)
ts.append(t)
t.start()
fortints:
t.join()
defshow(s):
prints
#onethreadset
defset_benchmark(count=100000,display=show):
mem=memcache.client(['127.0.0.1:11211'])
tt=pytyrant.pytyrant.open('127.0.0.1',1978)
start=time.time()
foriinxrange(count):
mem.set('key_%d'%i,'value_%d'%i)
ifdisplay:
display('memcache%dset:%s'%(count,time.time()-start))
start=time.time()
foriinxrange(count):
tt['key_%d'%i]='value_%d'%i
ifdisplay:
display('tokyotyrant%dset:%s'%(count,time.time()-start))
defset_benchmark_threads(count=100000,threads=20):
_benchmark_threads(set_benchmark,count,threads)
#onethreadget
defget_benchmark(count=100000,display=show):
mem=memcache.client(['127.0.0.1:11211'])
tt=pytyrant.pytyrant.open('127.0.0.1',1978)
start=time.time()
foriinxrange(count):
assertmem.get('key_%d'%i)=='value_%d'%i
display('memcache%dget:%s'%(count,time.time()-start))
start=time.time()
foriinxrange(count):
asserttt['key_%d'%i]=='value_%d'%i
display('tokyotyrant%dget:%s'%(count,time.time()-start))
defget_benchmark_threads(count=100000,threads=20):
_benchmark_threads(get_benchmark,count,threads)
#onethreadgetallmiss
defget_miss_benchmark(count=100000,display=show):
mem=memcache.client(['127.0.0.1:11211'])
tt=pytyrant.pytyrant.open('127.0.0.1',1978)
start=time.time()
foriinxrange(count):
assertmem.get('key_%d_miss'%i)isnone
display('memcache%dgetmiss:%s'%(count,time.time()-start))
start=time.time()
foriinxrange(count):
asserttt.get('key_%d_miss'%i,none)isnone
display('tokyotyrant%dgetmiss:%s'%(count,time.time()-start))
defget_miss_benchmark_threads(count=100000,threads=20):
_benchmark_threads(get_miss_benchmark,count,threads)
if__name__=='__main__':
print'onethreads'
print'set_benchmark'
set_benchmark()
print'-'*80
print'get_benchmark'
get_benchmark()
print'-'*80
print'get_miss_benchmark'
get_miss_benchmark()
set_benchmark_threads()
get_benchmark_threads()
get_miss_benchmark_threads()
页:
[1]