memcached是一个高性能的分布式内存对象缓存系统。通过在内存中缓存数据可以提高对系统的访问速度,减少对其后台的读写。memcached的守护进程是C语言编写的,但是客户端是由多种语言编写的。我们主要关注python和memcached结合。
首先安装memcached
yum install memcached
安装完memcached后,也许你想做一些配置,通过下面的命令可以找到memcached的相关文件。
[root@kramer memcached]# rpm -qa | grep memcached memcached-1.4.4-3.el6.x86_64 [root@kramer memcached]# rpm -ql memcached-1.4.4-3.el6.x86_64 /etc/rc.d/init.d/memcached /etc/sysconfig/memcached /usr/bin/memcached /usr/bin/memcached-tool /usr/share/doc/memcached-1.4.4 /usr/share/doc/memcached-1.4.4/AUTHORS /usr/share/doc/memcached-1.4.4/CONTRIBUTORS /usr/share/doc/memcached-1.4.4/COPYING /usr/share/doc/memcached-1.4.4/ChangeLog /usr/share/doc/memcached-1.4.4/NEWS /usr/share/doc/memcached-1.4.4/README /usr/share/doc/memcached-1.4.4/protocol.txt /usr/share/doc/memcached-1.4.4/readme.txt /usr/share/doc/memcached-1.4.4/threads.txt /usr/share/man/man1/memcached.1.gz /var/run/memcached
我们可以看到 yum 已经把memcached注册到了/etc/init.d 以及 /etc/rc.d中,所以,我们可以启动memcached 如下:
/etc/init.d/memcached start
可以看到启动后的进程是:
[root@kramer memcached]# ps -ef | grep memcached 498 31751 1 0 Jan14 ? 00:00:00 memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid
注意这里的-p 11211说明 memcached 监听端口是 11211.
启动完毕后,可以安装memcached 的 python 客户端,然后编写代码测试。
安装客户端用如下命令:
pip install python-memcached
然后我们编写一个python 来测试memcached 的威力。
#!/usr/bin/python import memcache,random,time,timeit mc=memcache.Client(['127.0.0.1:11211']) def compute_square(n): value=mc.get('sq:%d' % n) if value is None: time.sleep(0.001) value=n*n mc.set('sq:%d' % n,value) return value def make_request(): compute_square(random.randint(0,5000)) print 'Ten successive runs:', for i in range(1,11): print '%0.2fs' % timeit.timeit(make_request,number=2000), print
运行一下:
[root@kramer 20140115]# ./make_square_memcache.py Ten successive runs: 2.32s 1.56s 1.19s 0.82s 0.69s 0.53s 0.48s 0.39s 0.39s 0.29s
最开始运行 cache中没有多少缓存,所以运行2000次很慢要2.32秒。 但是越往后越快,只需要0.29秒。