首页 > 编程语言 > 详细

Python菜鸟之路:Python基础-操作缓存memcache、redis

时间:2016-07-22 18:54:11      阅读:392      评论:0      收藏:0      [点我收藏+]

一、搭建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"),那么要执行一下步骤:

  • 根据算法将 k1 转换成一个数字
  • 将数字和主机列表长度求余数,得到一个值 N( 0 <= N < 列表长度 )
  • 在主机列表中根据 第2步得到的值为索引获取主机,例如:host_list[N]
  • 连接 将第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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!