python的memcache模块连接速度测试

三者区别:

python-libmemcached:是对libmemcached接口的封装,pypi上至今还是dev版,豆瓣以前对此修改使用。

pylibmc:也是对libmemcached接口的封装。

python-memcache:是纯python实现(听说有内存泄露)。

另外前两者没有遍历memcached的接口(get_stats函数实现不一样)


测试环境:

ubuntu  14 64

4 * Intel(R) Core(TM) i5-3470 CPU @ 3.20GH

8G RAM

客户端使用单连接。


测试脚本:

# -*- coding: utf-8 -*-

import time

test_vaule = '~!@#$%^&*(' * 10
num = 10000


def test_mem(mc):
    t1 = time.clock()
    for i in xrange(num):
        mc.set(str(i), test_vaule)

    t2 = time.clock()
    for i in xrange(num):
        mc.get(str(i))

    t3 = time.clock()

    print('%d set/s.' % (num / (t2 - t1)))
    print('%d get/s.' % (num / (t3 - t2)))


if __name__ == '__main__':

        import pylibmc
        mc = pylibmc.client.Client(['127.0.0.1:11211'])
        print('test for %s %s' % (pylibmc.__name__, pylibmc.__version__))
        test_mem(mc) 
		
        import memcache
        print('test for %s %s' % (memcache.__name__, memcache.__version__))
        mc = memcache.Client(['127.0.0.1:11211'])
        test_mem(mc)

        import cmemcached
        print('test for %s %s' % (cmemcached.__name__, cmemcached.VERSION))
        mc = cmemcached.Client(['127.0.0.1:11211'])
        test_mem(mc)

测试结果:

root@ubuntu:~/workspace# python test_mem.py 
test for pylibmc 1.4.1
45783 set/s.
51379 get/s.
test for memcache 1.53
26295 set/s.
25974 get/s.
test for cmemcached 0.40
40135 set/s.
44864 get/s.


结果:

pylibmc 和 python-libmemcached相近,比python-memcache快1倍左右。

速度  pylibmc > python-libmemcached> python-memcache。

备注:当set值为python dict时, python-libmemcached>pylibmc

转载于:https://my.oschina.net/toil/blog/368619

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值