memcache使用中怎样使用disconnect方法

PHP环境下Memcache的使用方法 - CSDN博客
PHP环境下Memcache的使用方法
原文地址:/kf/967.html
如今互联网崛起的时代,各大网站都面临着一个大数据流问题,怎么提高网站访问速度,减少对数据库的操作;作为PHP开发人员,我们一般能想到的方法有页面静态化处理、防盗链、CDN内容分发加速访问、mysql数据库优化建立索引、架设apache服务器集群()、还有就是现在流行的各种分布式缓存技术:如memcached/redis;
1.什么是Memcached?
a.Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
b.Memcached的键key一般是字符串,该值不能重复;value可以放入字符串、数组、数值、对象、布尔,二进制数据和图片视频
c.Memcached默认服务端口是11211
2.PHP使用Memcached步骤
&1&准备:Memcached服务安装包:memcached-1.2.6-win32-bin.7z和访问Memcached服务的dll库:php_memcache.dll
www.memcached.org(官网进不去好像,可以从其他地方下载)
&2&解压包memcached-1.2.6-win32-bin.7z(可以解压完复制放到web服务器同级目录),然后操作cmd,进入到刚才解压的目录用命令安装:memcached.exe -d install
&3&安装完(判断是否安装完毕可以到服务列表里面查看是否有memcached服务),然后cmd用命令启动:memcached.exe -d start
具体操作如下:
&4&启动完memcached服务后,再把下载的php_memcache.dll放到web服务器php5目录下的ext目录下
&5&在php.ini里面修改,加载扩展库php_memcache.dll,然后重启apache服务器
&6&开始实践,memcached主要有crud操作(即创建、读取、更新、删除值操作,具体可以查阅手册),下面弄个简单的设置值,然后读取值的操作
a.设置值页面
header(&Content-type:text/charset=utf-8&);
= newMemcache();&
if(!$mem---&connect(&127.0.0.1&))
&&&&echo&连接Memcache服务器失败!&;
if($mem-&set('myword','hello
world',MEMCACHE_COMPRESSED,50))
&&&&echo&设置值成功!&;
注:如果值在内存存放的时间要超过30天,要用时间戳来设置100天:如time()+;设置0则表示永不过期
b.读取值页面
header(&Content-type:text/charset=utf-8&);
= newMemcache();&
if(!$mem---&connect(&127.0.0.1&))
&&&&echo&连接Memcache服务器失败!&;
= $mem-&get('myword');
if(!$value)
&&&&echo&读取失败!&;
&&&&echo&读取的值=&.$
c.删除、更新例子:
header(&Content-type:text/charset=utf-8&);
= newMemcache();&
if(!$mem---&connect(&127.0.0.1&))
&&&&echo&连接Memcache服务器失败!&;
if($mem-&set('myword','hello
world',MEMCACHE_COMPRESSED,50))
&&&&echo&设置值成功!&;
= $mem-&get('myword');
if(!$value)
&&&&echo&读取失败!&;
&&&&echo&读取的值=&.$
$mem-&replace('myword','hello
everybody!');
= $mem-&get('myword');
if(!$value)
&&&&echo&读取失败!&;
&&&&echo&读取的值=&.$
$mem-&delete('myword');
= $mem-&get('myword');
if(!$value)
&&&&echo&读取失败!&;
&&&&echo&读取的值=&.$
$mem-&close();&
注:mem对象下还有许多方法,可以通过翻阅手册了解。
&7&多个memcached服务器设置,其实就比一个memcached服务器改变一点点,就是把多个memcached的服务器通过方法addserver添加到连接池中,这样设置完后,crud操作时,内部就会通过相应算法均衡连接相应服务器并执行相应操作中。
header(&Content-type:text/charset=utf-8&);
= newMemcache();
$mem---&addserver('192.168.0.1',11211);
$mem-&addserver('192.168.0.2',11211);
$mem-&addserver('192.168.0.3',11211);
$mem-&addserver('192.168.0.4',11211);
if($mem-&set('myword','hello
world',MEMCACHE_COMPRESSED,50))
&&&&echo&设置值成功!&;
= $mem-&get('myword');
if(!$value)
&&&&echo&读取失败!&;
&&&&echo&读取的值=&.$
&8&memcache的访问是无用户状态,安全性需要考虑,一般通过放在内网,并通过防火墙限制外网访问memcache端口来达到安全
&9&通过修改php.ini,可以把session的值放入memcache服务器中
session.save_handler = files改成session.save_handler = memcached
session.save_path = &N;MODE;/path&改成 session.save_path = &tcp://127.0.0.1:11211&
本文已收录于以下专栏:
相关文章推荐
关于这两个扩展的区别网上有很多基本相同的说法,大致可以总结为下面几点
memcache是原生的,pecl扩展,memcached是基于libmemcached建立的,memcached提供了更多的使用...
memcache也有一款图形界面的监控工具(memcachephp),可以通过这个工具查看到局域网内所有部署memcache机器或者端口的memcache的运行情况,对我们监控memcache的缓存命...
/juntao_li/item/094d78c6ce1aa060f6c95d0b
MySQL datediff(date1,date2):两个日期相减 da...
最近将测试项目部署到云服务器的时候,数据库正常访问,用PHP访问显示PDO连接数据库提示could
not find driver
1、查看phpinfo,显示没有mysql
其实这个文件没什么好说的,主要就是定义一些路径,贴出来,主要是以后文件中提这些路径的时候,有一个印象$parts = explode( DS, JPATH_BASE );//Definesdefine...
/include/framework.php 这个文件在index.php中是最早引入的文件之一,这个文件主要实现了一些基本类的引入,下面我们逐一看一下:require_once( JPATH_LIB...
万源之源,这个名字非常有意思,老是让我想起小时候,玩的那种圆圆的纸牌,在土地中玩的,用自己的纸牌把别人的打翻了就赢了别人的,大部分都是纸壳剪的,偶尔也有用油毡纸,或者石棉纸做的,通常把这种好的牌或者那...
测试网站搭建完毕,首先来熟悉一下,1.5RC3版的目录结构: 1、componets 所有安装的组件的,前端用户界面相关程序都在这里,每个组件一个子目录,通常是com_***2、plugins 所有的...
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)python 链接和操作 memcache方法
投稿:jingxian
字体:[ ] 类型:转载 时间:
下面小编就为大家带来一篇python 链接和操作 memcache方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
1,打开memcached服务
memcached -m 10 -p 12000
2,使用python-memcached模块,进行简单的链接和存取数据
import memcache
mc = memcache.Client(['127.0.0.1:12000'], debug=0)
mc.set("foo", "bar")
mc.get("foo")
mc.disconnect_all()
3,其它方法请参考:
以上这篇python 链接和操作 memcache方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具下次自动登录
现在的位置:
& 综合 & 正文
memcache 中
add 、 set 、replace 的区别
用过memcache的人都有一个疑惑,那就是memcache中为什么会有一个add方法、一个set方法、一个replace呢,这几个方法又有着什么样的区别呢,下边我们来分析下这几个方法的不同之处:
memcache::add 方法:add方法用于向memcache服务器添加一个要缓存的数据。
memcache::set 方法:set方法用于设置一个指定key的缓存内容,set方法是add方法和replace方法的集合体
mmecache::replace方法: replace方法用于替换一个指定key的缓存内容,如果key不存在则返回false
当key不存在
替换(true)
替换(true)
相信大家知道以后该如何使用这几个方法了吧,其实就这么简单
&&&&推荐文章:
【上篇】【下篇】在ci中使用Memcache方法
1、在application/config目录中新建memcached.php文件
&?php&&if&(&!&defined('BASEPATH'))&exit('No&direct&script&access&allowed');
$config=&array(
&&&&'default'&=&&array(
&&&&&&&&'host'&=&&'121.52.217.105',
&&&&&&&&'port'&&&&&&&&=&&11211,
&&&&&&&&'weight'&&&&=&&80
2、修改system/libraries/Cache/drivers目录下的Cache_memcached.php文件
&?php&if&(&!&defined('BASEPATH'))&exit('No&direct&script&access&allowed');
//&------------------------------------------------------------------------
class&CI_Cache_memcached&extends&CI_Driver&{
&&&&private&$_memcached;&&&&//&Holds&the&memcached&object
&&&&protected&$_memcache_conf&&&=&array(
&&&&&&&&&&&&&&&&&&&&'default'&=&&array(
&&&&&&&&&&&&&&&&&&&&&&&&'default_host'&&&&&&=&&'localhost',
&&&&&&&&&&&&&&&&&&&&&&&&'default_port'&&&&&&=&&11211,
&&&&&&&&&&&&&&&&&&&&&&&&'default_weight'&&&&=&&1
&&&&&&&&&&&&&&&&&&&&)
&&&&&&&&&&&&&&&&);
&&&&//&------------------------------------------------------------------------&
&&&&public&function&get($id)
&&&&&&&&$data&=&$this-&_memcached-&get($id);
&&&&&&&&//return&(is_array($data))&?&$data[0]&:&FALSE;
&&&&&&&&return&empty($data)&?&FALSE&:&$data;
&&&&&&&&&&&&&&&&
&&&&//&------------------------------------------------------------------------
&&&&public&function&save($id,&$data,&$ttl&=&60)
&&&&&&&&if&(get_class($this-&_memcached)&==&'Memcached')
&&&&&&&&&&&&return&$this-&_memcached-&set($id,&array($data,&time(),&$ttl),&$ttl);
&&&&&&&&else&if&(get_class($this-&_memcached)&==&'Memcache')
&&&&&&&&&&&&return&$this-&_memcached-&set($id,&array($data,&time(),&$ttl),&0,&$ttl);
&&&&&&&&&&&&&&&&
&&&&&&&&return&FALSE;
&&&&public&function&replace($id,&$data,&$ttl&=&60)
&&&&&&&&if&(get_class($this-&_memcached)&==&'Memcached')
&&&&&&&&&&&&return&$this-&_memcached-&replace($id,&array($data,&time(),&$ttl),&$ttl);
&&&&&&&&else&if&(get_class($this-&_memcached)&==&'Memcache')
&&&&&&&&&&&&return&$this-&_memcached-&replace($id,&array($data,&time(),&$ttl),&0,&$ttl);
&&&&&&&&&&&&
&&&&&&&&return&FALSE;
&&&&//&------------------------------------------------------------------------
&&&&&&&&&&&&
&&&&public&function&delete($id)
&&&&&&&&return&$this-&_memcached-&delete($id);
&&&&//&------------------------------------------------------------------------
&&&&&&&&&&&&
&&&&public&function&clean()
&&&&&&&&return&$this-&_memcached-&flush();
&&&&//&------------------------------------------------------------------------
&&&&public&function&cache_info($type&=&NULL)
&&&&&&&&return&$this-&_memcached-&getStats();
&&&&//&------------------------------------------------------------------------
&&&&&&&&&&&&
&&&&public&function&get_metadata($id)
&&&&&&&&&&&&&&&&
&&&&&&&&$stored&=&$this-&_memcached-&get($id);
&&&&&&&&&&&&
&&&&&&&&if&(count($stored)&!==&3)
&&&&&&&&&&&&return&FALSE;
&&&&&&&&list($data,&$time,&$ttl)&=&$stored;
&&&&&&&&return&array(
&&&&&&&&&&&&'expire'&&&&=&&$time&+&$ttl,
&&&&&&&&&&&&'mtime'&&&&&=&&$time,
&&&&&&&&&&&&'data'&&&&&&=&&$data
&&&&&&&&);
&&&&//&------------------------------------------------------------------------
&&&&private&function&_setup_memcached()
&&&&&&&&//&Try&to&load&memcached&server&info&from&the&config&file.
&&&&&&&&$CI&=&&get_instance();
&&&&&&&&if&($CI-&config-&load('memcached',&TRUE,&TRUE))
&&&&&&&&&&&&if&(is_array($CI-&config-&config['memcached']))
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&$this-&_memcache_conf&=&NULL;
&&&&&&&&&&&&&&&&foreach&($CI-&config-&config['memcached']&as&$name&=&&$conf)
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&$this-&_memcache_conf[$name]&=&$conf;
&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&
&&&&&&&&&&&&}&&&&&&&&&&&
&&&&&&&&if(class_exists("Memcached")){
&&&&&&&&&&$this-&_memcached&=&new&Memcached();
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&foreach&($this-&_memcache_conf&as&$name&=&&$cache_server)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&if&(&!&array_key_exists('hostname',&$cache_server))
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&$cache_server['hostname']&=&$this-&_default_options['default_host'];
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&if&(&!&array_key_exists('port',&$cache_server))
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&$cache_server['port']&=&$this-&_default_options['default_port'];
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&if&(&!&array_key_exists('weight',&$cache_server))
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&$cache_server['weight']&=&$this-&_default_options['default_weight'];
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&$this-&_memcached-&addServer(
&&&&&&&&&&&&&&&&&&&&&&&&$cache_server['hostname'],&$cache_server['port'],&$cache_server['weight']
&&&&&&&&&&&&&&&&);
&&&&&&&&&&&&}
&&&&&&&&}&else&{&//&used&for&windows&version&of&memcached
&&&&&&&&&&$this-&_memcached&=&new&Memcache();
&&&&&&&&&&foreach&($this-&_memcache_conf&as&$name&=&&$cache_server){
&&&&&&&&&&&&&&&&$res&=&$this-&_memcached-&connect($this-&_memcache_conf[$name]['host'],&$this-&_memcache_conf[$name]['port'],&$this-&_memcache_conf[$name]['weight']);
&&&&&&&&&&}
&&&&//&------------------------------------------------------------------------
&&&&public&function&is_supported()
&&&&&&&&if&(&!extension_loaded('memcached')&&&&!extension_loaded('memcache'))
&&&&&&&&&&&&log_message('error',&'The&Memcached&Extension&must&be&loaded&to&use&Memcached&Cache.');
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&return&FALSE;
&&&&&&&&&&&&&&&&
&&&&&&&&$this-&_setup_memcached();
&&&&&&&&return&TRUE;
&&&&//&------------------------------------------------------------------------
//&End&Class
3、如果需要Memcache方法中的replace方法,需要修改Cache.php,增加
&&&&public&function&replace($id,&$data,&$ttl&=&60)
&&&&&&&&return&$this-&{$this-&_adapter}-&replace($id,&$data,&0,&&$ttl);
$this-&load-&driver('cache');
if($this-&cache-&memcached-&is_supported()&===&TRUE){
&&&&$cache&=&$this-&cache-&memcached-&get($key);
&&&&&&&&&&&&&&&&&&&&&
&&&&if(!empty($cache)){
&&&&&&&&$this-&cache-&memcached-&replace(&$key,&$value,&1800);
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 java memcache 使用 的文章

 

随机推荐