首先来安装一下服务器端:
[root@sydnagios ~]# yum install memcached Loaded plugins: fastestmirror, langpacks Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast base | 3.6 kB 00:00 epel/x86_64/metalink | 2.0 kB 00:00 epel | 4.3 kB 00:00 extras | 3.4 kB 00:00 updates | 3.4 kB 00:00 (1/5): epel/x86_64/group_gz | 170 kB 00:00 (2/5): epel/x86_64/updateinfo | 671 kB 00:00然后服务器端跑起来
[root@sydnagios ~]# memcached -d -m 10 -u root -l 10.2.1.107 -p 12000 -c 256 -P /tmp/memcached.pid 参数说明:- d 是启动一个守护进程
- m 是分配给Memcache使用的内存数量,单位是MB
- u 是运行Memcache的用户
- l 是监听的服务器IP地址
- p 是设置Memcache监听的端口,最好是 1024 以上的端口
- c 选项是最大运行的并发连接数,默认是 1024 ,按照你服务器的负载量来设定
- P 是设置保存Memcache的pid文件
接下来安装python的客户端模块 https: / / pypi.python.org / pypi / python - memcached
解压拷贝到sys.path对应的目录,就能直接用了
看看第一个例子,里面debug是为了显示错误的 生产环境里面不要用
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author Yuan Li import memcache mc = memcache.Client(['10.2.1.107:12000'], debug=True) mc.set("foo", "bar") mc.add("name","John") print( mc.get('foo')) print(mc.get('name')) ----------- bar Johnmemcached的第二个特定是他默认支持集群,原理是内存里面创建一个主机的列表;每个主机有一个权重,权重的数目和主机在列表里面出现的数目成正比。通过算法可以决定把键值对放在哪个服务器的内存里面。
例2
mc = memcache.Client([('1.1.1.1:12000', 1), ('1.1.1.2:12000', 2), ('1.1.1.3:12000', 1)], debug=True) mc.set('k1', 'v1')除了get和set以外,他还具有以下常用函数
add添加一条键值对,如果已经存在的 key,重复执行add操作异常 replace
replace 修改某个key的值,如果key不存在,则异常
set 和 set_multi
set 设置一个键值对,如果key不存在,则创建,如果key存在,则修改set_multi 设置多个键值对,如果key不存在,则创建,如果key存在,则修改
delete 和 delete_multi
delete 在Memcached中删除指定的一个键值对delete_multi 在Memcached中删除指定的多个键值对
append 和 prepend
append 修改指定key的值,在该值 后面 追加内容prepend 修改指定key的值,在该值 前面 插入内容
decr 和 incr
incr 自增,将Memcached中的某一个值增加 N ( N默认为1 )decr 自减,将Memcached中的某一个值减少 N ( N默认为1 )
gets 和cas
这个组合可以避免脏数据的产生,如果在gets数据,和cas数据回去这个过程中有其他用户执行了get,那么则不允许修改