测试环境

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完全落在下风


Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐