标签:
一、搭建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