python memcache 简单操作 (用于web前端优化,减少读库次数)
2014-12-09 00:09
357 查看
Memcached官网 memcached.org
简单介绍:memcached很强大,它可以支持分布式的共享内存缓存,大型站点都用它。对小站点来说,有足够内存的话,使用它也可以得到超赞的效果。
使用目的:由前面的介绍看到,大家使用它都是为了速度,不过我却是为了解决Session在不同浏览器中偶尔丢失的数据。其实也不能怪浏览器啦,主要是我需要一个dict类型的session,哈哈。
Linux
安装包
对于大多数Linux发行版本来说,可以使用官方推荐的方法:
Debian/Ubuntu
apt-get install memcached
Redhat/Fedora/CentOS
yum install memcached
源码安装(CentOS 5.5)
1、下载libevent(依赖) 和memcached
分别到以下引用地址下载最新版本:
引用地址 http://www.monkey.org/~provos/libevent/
引用地址:http://code.google.com/p/memcached/downloads/list
2、安装ibevent(依赖) 和memcached
libevent(目前最新是libevent-2.0.10-stable.tar.gz,请注意版本号)
tar xvf libevent-2.0.10-stable.tar.gz
cd libevent-2.0.10-stable
./configure --prefix=/usr/local/libevent/
make
make install
接着,ls /usr/local/libevent/lib,将查看到的第一个类似libevent-X.X.so.X
ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /lib/libevent-2.0.so.5
memcached (目前最新是1.4.5,请注意版本号)
tar zxvf memcached-1.4.5.tar.gz
cd memcached-1.4.5
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/
make
make install
3、启动memcached
启动参数说明(这是我是复制粘贴的,如有错误请指正):
-d 选项是启动一个守护进程
-m 是分配给Memcache使用的内存数量,单位是MB,默认64MB
-M return error on memory exhausted (rather than removing items)
-u 是运行Memcache的用户,如果当前为root 的话,需要使用此参数指定用户
-l 是监听的服务器IP地址,默认为所有网卡
-p 是设置Memcache的TCP监听的端口,最好是1024以上的端口
-c 选项是最大运行的并发连接数,默认是1024
-P 是设置保存Memcache的pid文件
-f chunk size growth factor (default: 1.25)
-I Override the size of each slab page. Adjusts max item size(1.4.2版本新增)
例子:
/usr/local/memcached/bin/memcached -d -m 100 -c 1000 -u root -p 11211
可以启动多个守护进程,但是端口不能重复。设置开机启动的话可以将上行命令增加到/etc/rc.d/rc.local文件中。
Win
1. 下载memcache的windows稳定版
下载地址 http://jehiah.cz/projects/memcached-win32/files/memcached-1.2.1-win32.zip
解压放某个盘下面,比如在c:\memcached
2. 在终端(也即cmd命令界面)cd到解压目录(这里是c:\memcached),运行 memcached.exe -d install 安装服务
3. 运行memcached.exe -d start,memcached会使用默认的端口(11211)来启动,你可以在任务管理器中看到memcached.exe
memcached API地址 http://code.google.com/p/memcached/wiki/Clients
网上流传说Python-API中效率最高的是python-libmemcached,这里居然看到了hongqn(豆瓣首席架构师,后来也得到证实python-libmemcached是豆瓣贡献),看来豆瓣的阳光真的是撒满了Python的各个角落。
另外还有python-memcached(100%纯Python),python-memcache(据说有内存泄漏问题?),cmemcache(代码多年未更新?)。
不过由于目前需要中效率并没有太高要求,于是选择了使用最多的python-memcached:
安装 python-memcached
easy_install python-memcached
Python操作memcached
import memcache
mc = memcache.Client(['127.0.0.1:11211'],debug=True)
mc.set('name','luo',60)
print mc.get('name')
memcache其实是一个map结构,最常用的几个函数:
保存数据
set(key,value,timeout) 把key映射到value,timeout指的是什么时候这个映射失效
add(key,value,timeout) 仅当存储空间中不存在键相同的数据时才保存
replace(key,value,timeout) 仅当存储空间中存在键相同的数据时才保存
获取数据
get(key) 返回key所指向的value
get_multi(key1,key2,key3,key4) 可以非同步地同时取得多个键值,
比循环调用get快数十倍
删除
简单介绍:memcached很强大,它可以支持分布式的共享内存缓存,大型站点都用它。对小站点来说,有足够内存的话,使用它也可以得到超赞的效果。
使用目的:由前面的介绍看到,大家使用它都是为了速度,不过我却是为了解决Session在不同浏览器中偶尔丢失的数据。其实也不能怪浏览器啦,主要是我需要一个dict类型的session,哈哈。
安装
Linux
安装包
对于大多数Linux发行版本来说,可以使用官方推荐的方法:
Debian/Ubuntu
apt-get install memcached
Redhat/Fedora/CentOS
yum install memcached
源码安装(CentOS 5.5)
1、下载libevent(依赖) 和memcached
分别到以下引用地址下载最新版本:
引用地址 http://www.monkey.org/~provos/libevent/
引用地址:http://code.google.com/p/memcached/downloads/list
2、安装ibevent(依赖) 和memcached
libevent(目前最新是libevent-2.0.10-stable.tar.gz,请注意版本号)
tar xvf libevent-2.0.10-stable.tar.gz
cd libevent-2.0.10-stable
./configure --prefix=/usr/local/libevent/
make
make install
接着,ls /usr/local/libevent/lib,将查看到的第一个类似libevent-X.X.so.X
ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /lib/libevent-2.0.so.5
memcached (目前最新是1.4.5,请注意版本号)
tar zxvf memcached-1.4.5.tar.gz
cd memcached-1.4.5
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/
make
make install
3、启动memcached
启动参数说明(这是我是复制粘贴的,如有错误请指正):
-d 选项是启动一个守护进程
-m 是分配给Memcache使用的内存数量,单位是MB,默认64MB
-M return error on memory exhausted (rather than removing items)
-u 是运行Memcache的用户,如果当前为root 的话,需要使用此参数指定用户
-l 是监听的服务器IP地址,默认为所有网卡
-p 是设置Memcache的TCP监听的端口,最好是1024以上的端口
-c 选项是最大运行的并发连接数,默认是1024
-P 是设置保存Memcache的pid文件
-f chunk size growth factor (default: 1.25)
-I Override the size of each slab page. Adjusts max item size(1.4.2版本新增)
例子:
/usr/local/memcached/bin/memcached -d -m 100 -c 1000 -u root -p 11211
可以启动多个守护进程,但是端口不能重复。设置开机启动的话可以将上行命令增加到/etc/rc.d/rc.local文件中。
Win
1. 下载memcache的windows稳定版
下载地址 http://jehiah.cz/projects/memcached-win32/files/memcached-1.2.1-win32.zip
解压放某个盘下面,比如在c:\memcached
2. 在终端(也即cmd命令界面)cd到解压目录(这里是c:\memcached),运行 memcached.exe -d install 安装服务
3. 运行memcached.exe -d start,memcached会使用默认的端口(11211)来启动,你可以在任务管理器中看到memcached.exe
Python操作Memcached
memcached API地址 http://code.google.com/p/memcached/wiki/Clients网上流传说Python-API中效率最高的是python-libmemcached,这里居然看到了hongqn(豆瓣首席架构师,后来也得到证实python-libmemcached是豆瓣贡献),看来豆瓣的阳光真的是撒满了Python的各个角落。
另外还有python-memcached(100%纯Python),python-memcache(据说有内存泄漏问题?),cmemcache(代码多年未更新?)。
不过由于目前需要中效率并没有太高要求,于是选择了使用最多的python-memcached:
安装 python-memcached
easy_install python-memcached
Python操作memcached
import memcache
mc = memcache.Client(['127.0.0.1:11211'],debug=True)
mc.set('name','luo',60)
print mc.get('name')
Memcached常用方法
memcache其实是一个map结构,最常用的几个函数:保存数据
set(key,value,timeout) 把key映射到value,timeout指的是什么时候这个映射失效
add(key,value,timeout) 仅当存储空间中不存在键相同的数据时才保存
replace(key,value,timeout) 仅当存储空间中存在键相同的数据时才保存
获取数据
get(key) 返回key所指向的value
get_multi(key1,key2,key3,key4) 可以非同步地同时取得多个键值,
比循环调用get快数十倍
删除
相关文章推荐
- 【web前端优化之reflow】减少页面的回流
- Web项目性能优化之减少HTTP请求次数优化
- Web项目性能优化之减少HTTP请求次数优化
- webdriver基础python版(一)简单的浏览器操作
- web前端优化之reflow(减少页面的回流)
- 前端性能优化--为什么DOM操作慢? 浅谈DOM的操作以及性能优化问题-重绘重排 为什么要减少DOM操作 为什么要减少操作DOM
- Python之路day13 web 前端(JavaScript,DOM操作)
- 前端优化-服务器端-减少Http次数
- 前端性能优化的方法和工具,减少http请求的次数和速度
- Web前端性能优化(一)减少Http请求
- 简单示例python操作memcache
- Web前端开发最佳实践(13):前端页面卡顿?可能是DOM操作惹的祸,你需要优化代码
- Web前端性能优化教程01:减少Http请求
- Web前端性能优化教程06:减少DNS查找、避免重定向
- Web前端优化最佳实践及工具集锦(如减少页面加载时间)
- Selenium基于Python web自动化基础一 -- 基础汇总及简单操作
- 浅谈web前端的简单优化
- Web前端性能优化(六)减少DNS查找、避免重定向
- 前端性能优化--合并压缩js,减少http请求次数
- 前端优化总结-服务器端-减少Http次数-图片合成css sprite