频道栏目
首页 > 资讯 > 其他 > 正文

Python 学习笔记 - Memcached

16-11-09        来源:[db:作者]  
收藏   我要投稿

Memcached是一个分布式内存对象缓存系统,他把数据缓存在内存里面来减少对数据库的访问,从而提高动态网页的访问速度。他的基本结构是key/value(键值对)。下面看看在Python里面如何使用。

首先来安装一下服务器端,豆子直接在一个CentOS7的机器上安装

[root@sydnagios~]#yuminstallmemcachedLoadedplugins:fastestmirror,langpacksRepodataisover2weeksold.Installyum-cron?Orrun:yummakecachefastbase|3.6kB00:00epel/x86_64/metalink|2.0kB00:00epel|4.3kB00:00extras|3.4kB00:00updates|3.4kB00:00(1/5):epel/x86_64/group_gz|170kB00:00(2/5):epel/x86_64/updateinfo|671kB00:00

然后服务器端跑起来,这个里面我指定的端口是12000,因此如果有防火墙别忘记打开对应端口

[root@sydnagios~]#memcached-d-m10-uroot-l10.2.1.107-p12000-c256-P/tmp/memcached.pid

参数说明:-d 是启动一个守护进程-m 是分配给Memcache使用的内存数量,单位是MB-u 是运行Memcache的用户-l 是监听的服务器IP地址-p 是设置Memcache监听的端口,最好是1024以上的端口-c 选项是最大运行的并发连接数,默认是1024,按照你服务器的负载量来设定-P 是设置保存Memcache的pid文件

打开防火墙端口

firewall-cmd--add-port=12000/tcp--permanent

接下来安装Python的客户端模块 从这里下载https://pypi.python.org/pypi/python-memcached

解压拷贝到sys.path对应的目录,就能直接用了

看看第一个例子,可以通过set来设置数据,get来获取数据。里面debug是为了显示错误的 生产环境里面不要用

#!/usr/bin/envpython#-*-coding:utf-8-*-#AuthorYuanLiimportmemcachemc=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'))-----------barJohn

memcached的第二个特点是他默认支持集群,原理是内存里面创建一个主机的列表;每个主机有一个权重,权重的数目和主机在列表里面出现的数目成正比。通过算法可以决定把键值对放在哪个服务器的内存里面。

例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操作异常

replacereplace 修改某个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,那么则不允许修改

相关TAG标签
上一篇:MaxScale2.0.1结合Java Druid连接池实现读写分离注意事项
下一篇:SQL Server超时诊断和调优
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站