一、搭建memcached和redis
略,自己去百度吧
二、操作Mmecached
1. 安装API
python -m pip install python-memcached
2. 启动memcached
memcached -d -u root -p 12000 -m 50 memcached -d -u root -p 12001 -m 50 memcached -d -u root -p 12002 -m 50参数说明:
-
d 是启动一个守护进程
-
m 是分配给Memcache使用的内存数量,单位是MB
-
u 是运行Memcache的用户
-
l 是监听的服务器IP地址
-
p 是设置Memcache监听的端口,最好是
1024
以上的端口
-
c 选项是最大运行的并发连接数,默认是
1024
,按照你服务器的负载量来设定
-
P 是设置保存Memcache的pid文件
3. Python Memcached模块对于memcached集群的支持
python-memcached模块原生支持集群操作,其原理是在内存维护一个主机列表,且集群中主机的权重值和主机在列表中重复出现的次数成正比
1
2
3
4
5
6
7
|
主机 权重 1.1 . 1.1 1 1.1 . 1.2 2 1.1 . 1.3 1 那么在内存中主机列表为: host_list = [ "1.1.1.1" , "1.1.1.2" , "1.1.1.2" , "1.1.1.3" , ] |
如果用户根据如果要在内存中创建一个键值对(如:k1 = "v1"),那么要执行一下步骤:
代码实现如下:
1
2
3
|
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‘ ) |
4. add(keyname, value)
obj.add(‘k1‘, ‘v1‘) obj.add(‘k1‘, ‘v1‘) v1 = obj.get(‘k1‘) print(‘v1: ‘, v1) out: MemCached: while expecting ‘STORED‘, got unexpected response ‘NOT_STORED‘ # 如果添加的key存在,则报错 v1: v1
5. replace(keyname, new_value)
obj.replace(‘k1‘, ‘new_v1‘) v1 = obj.get(‘k1‘) print(‘v1: ‘, v1) out: v1: new_v1
6. set 和 set_multi
set 设置一个键值对,如果key不存在,则创建,如果key存在,则修改
get 获取一个键值对
set_multi 设置多个键值对,如果key不存在,则创建,如果key存在,则修改
get_multi 获取多个键值对
# set 和 get
obj.set(‘k1‘, ‘modify_v1‘) obj.set(‘k2‘, ‘newadd_v2‘) v1 = obj.get(‘k1‘) print(‘v1: ‘, v1) v2 = obj.get(‘k2‘) print(‘v2: ‘, v2) out: v1: modify_v1 v2: newadd_v2
# set_multi 和 get_multi obj.set_multi({‘k3‘:‘v3‘, ‘k4‘:‘v4‘}) print(obj.get_multi([‘k3‘,‘k4‘])) out: {‘k3‘: ‘v3‘, ‘k4‘: ‘v4‘}
7. delete 和 delete_multi
9. append 和 prepend
10. decr 和 incr
11. gets 和 cas
Python菜鸟之路:Python基础-操作缓存memcache、redis
原文:http://www.cnblogs.com/jishuweiwang/p/5695992.html