测试环境
1.服务器,一台i7的pc
2.测试使用语言 python
测试代码用python很简单,有不足部分,欢迎大神指正
#coding=utf8 import multiprocessing from redis import Redis import config import time import sys class Monitor(multiprocessing.Process): def __init__(self,completed_queue): multiprocessing.Process.__init__(self) self.completed_queue = completed_queue self.completed_count = 0 def run(self): start = time.time() while True: next_task = self.completed_queue.get() self.completed_count += 1 spend = time.time()-start sys.stdout.write("%dqps\r"%(self.completed_count/spend,)) sys.stdout.flush() class RedisQpsTest(multiprocessing.Process): def __init__(self,completed_queue): multiprocessing.Process.__init__(self) self.completed_queue = completed_queue def run(self): self.conn = Redis(**config.redis) for i in range(1000000): result = self.conn.get('wx_access_token') self.completed_queue.put(1) completed_queue = multiprocessing.Queue() p4 = Monitor(completed_queue) p4.start() for i in range(int(sys.argv[1])): p = RedisQpsTest(completed_queue) p.start()
分别对一个小字符串,比如微信的token,还有一个比较大的json(6252个字节)串进行测试
测试结果如下,微信token取 qps,测试脚本放在另外一台服务器上
测试结果如下,大json取 qps 这里在本地测试,因为字符串太大,带宽占了比较大的因素,所以测试脚本没有放别的服务器上
结果还是很意外的,
memcache完全落在下风