当前位置:首页 > 日记 > 正文

PHP的内存缓存功能缓存实例

PHP的内存缓存功能缓存实例
以下是对memcached类应用实例作了简要的介绍,具有一定的参考价值,与感兴趣的朋友可以参考它。
一、对memcached简介
在许多场合,我们都会听到叫memcached,但许多学生都听见了,但没有用它或知道它,但我知道这是很好的。作为一个简单的介绍,memcached是一种高效、快速的,分布式的内存对象缓存系统,它主要用于加快网页动态应用。
二,Memcached安装
第一步是下载缓存,和最新版本1.1.12,可直接从官方网站下载memcached-1.1.12.tar.gz.in此外,Memcached使用libevent,我下载了libevent-1.1a.tar.gz。
接下来是解压,编译,安装libevent-1.1a.tar.gz和memcached-1.1.12.tar.gz,分别:
#焦油计算libevent-1.1a.tar.gz

# CD libevent-1.1a

#。 /配置-前缀= / usr

#使

#安装

# CD。

#焦油计算memcached-1.1.12.tar.gz

# CD memcached-1.1.12

#。 /配置-前缀= / usr

#使

#安装
安装完成后,应在memcached / usr /斌/缓存。
三。运行memcached进程
运行memcached进程是简单的,只是一个命令行,无需修改任何配置文件(没有配置文件可以修改为你):

/ usr /斌/缓存- D - M 128 L P 11211 U httpd 192.168.1.1
参数解释:

D运行memcached的守护进程(daemon)的方式;
M集,Memcached可以使用的内存大小,单位是米;
l设置侦听器的IP地址,如果是这台机器,通常不设置此参数;
p设置监听器的端口,默认值是11211,所以您也不能设置这个参数;
u指定用户,如果当前是root用户,则需要使用此参数指定用户。

当然,还有其他的参数,可以使用memcached,人可以看到。
四、工作原理memcached
首先,将运行在一个或多个服务器守护进程模式,并接受客户端的连接操作,在任何时间。客户端可以是各种语言编写的,与目前已知的客户端API包括Perl、PHP、Python、Ruby / / / # java C C等。PHP在客户端建立与memcached服务连接后,下一步是访问对象,每个访问的对象都有一个唯一的标识符,通过访问操作的关键,保存缓存对象实际上是放置在内存中,而不是存储在缓存中的缓存文件,为什么能如此快速、高效的原因。注意,这些物体是不是持久的,在里面的数据将在服务停止了。
五、PHP如何作为一个memcached客户端
有两种方法可以让PHP作为Memcached客户端,调用缓存的服务对象的访问操作。
首先,PHP有一个扩展名为Memcache。当Linux编译,它需要将启用memcache { = dir }选项。窗下,对php_memcache.dll正面标注移出的使其可。
此外,有一种方法可以避免扩展和重新编译的麻烦,它是用PHP Memcached客户端直接。
本文选择第二种方式,虽然效率会比扩展库稍差,但问题不大。

六、PHP缓存技术的应用实例
首先,下载memcached-client.php。下载后memcached-client.php,你可以用memcached服务通过类memcached这个文件。事实上,代码调用非常简单,所采用的方法主要是增加(),得到(),(),删除(替换)。这些方法描述如下:

添加($,$,$ = 0)
写对象缓存技术,关键是美元的唯一标识符的对象,为val对象数据写入,$ EXP到期时间,单位是秒,默认是没有时间。

获取($密钥)
从缓存中获得对象的数据,这是由对象的唯一标识符密钥获得美元。

替换($键,$,$ = 0)
使用$值代替对象内容在memcached标识符美元关键。参数与添加()方法相同。只有当$对象存在时,它才会工作。

删除($键,$时间= 0)

删除关键在美元memcached标识符的对象,美元和时间作为一个可选的参数,说明多长时间需要等待删除。
以下是该对象的数据与identifier'mykey'is访问一个简单的测试代码。

< PHP
包含 / /缓存的类文件
require_once('memcached-client。php);
选项
$选项=数组(
'服务器' =阵列('192.168.1.1:11211 '), / / memcached服务地址,端口,可以使用多个数组元素代表多个memcached服务
调试= true,调试是打开的
compress_threshold= > 10240, / /压缩过的数据的字节数
持续性= >假 / /是否使用持久连接
);
/ /创建一个缓存对象实例
MC =新memcached美元(美元期权);
使用唯一标识符设置脚本
美元关键= 'mykey;
/ /写入缓存对象
MC ->添加美元(美元的关键,随机字符串);
$ = $;
回声n。str_pad($ MC ->添加(60)、N,'_ ');
var_dump(美元值);
已写入对象数据以替换值。
MC ->取代美元(美元关键,阵列(= > 'haha ','array= > 'xxx '));
$ = $;
回声n。str_pad($ MC ->替换(60)、N,'_ ');
var_dump(美元值);
/ /删除对象缓存
$ >删除($键);
$ = $;
回声n。str_pad($ MC ->删除(60)、N,'_ ');
var_dump(美元值);
>
很简单吗在实际应用中,我们通常存储组数据库查询缓存的结果,并直接从缓存中而不是数据库查询操作得到它,可以很大程度上减少数据库负担。SQL语句的MD5值后()通常作为唯一标识符的关键。其次是使用memcached缓存设置一个数据库查询结果的一个例子(代码片段如下上面的例子代码)。

< PHP
美元'select *从用户的SQL语句;
美元关键= MD5($ SQL); / /缓存对象标识符
{
无需访问数据缓存 / /缓存,用于在数据库查询获得的记录。
回声n。str_pad(读取数据从MySQL。60、N '_)。;
美元mysql_connect conn =('localhost测试,测试的);
mysql_select_db(测试);
结果= mysql_query美元($ SQL);
而($行= mysql_fetch_object($结果))
$数据= $行;
/ /数据库访问保存在缓存中的数据,当用于下次访问。
添加$(键,数据);
{
回声n。str_pad(读取数据从缓存。,60,N '_)。;
}
var_dump($数据);
>
你可以看到,使用缓存后,可以减少数据库连接,查询操作,数据库的负载下,和脚本的运行速度也得到了提高。
之前我写了一篇题为PHP多服务器的会话数据共享的文章,会话是一个数据库储存使用,获得大量的并发服务器负载的时间将是巨大的,往往超出连接mysql的最大数目,使用缓存技术,我们可以很好的解决这个问题,工作原理如下:
用户访问一个网页,是否有查看缓存当前用户会话数据,使用session_id()作为一种独特的标识符;如果数据存在,则直接返回,如果不存在,那么数据库连接、访问会话数据,而这个数据保存到memcached,下次;
在当前的PHP操作结束(或使用session_write_close()),写的my_sess::()方法调用将数据写入数据库。这样,在任何时候都会有数据库操作。这种方法还需要优化。使用一个全局变量,会话数据的用户进入页面,然后在写()与会话数据比较写入相同的数据的方法,不同的数据库连接,在memcached的同时将写入数据库,删除相应的对象,如果是相同的,说会话数据没有变化,所以,你可以不做任何操作,直接回;
那么如何解决用户的会话过期时间呢你还记得添加()方法memcached有过期的时间参数$口吗将此参数值设置为小于会话最大存活时间,并且不要忘记将会话时间扩展到总是在线的用户。这可以在写()方法中解决。通过更新时间和满足需求,我们可以更新数据库数据。
以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持。

相关文章

计算距离两个经度和纬度之间的戈兰

计算距离两个经度和纬度之间的戈兰

方法,计算,经度,纬度,距离,本文介绍了用郎和PHP计算经纬度的方法,供大家参考: 郎的版本: 复制代码代码如下:包主 进口( 格式化 数学 ) 函数主(){ 中:= 29.490295 lng1:= 106.486654 LAT2:= 29.615467 lng2:= 106.581515 FMT。Println(earthd…

如何打破excel表格中excel表格的07

如何打破excel表格中excel表格的07

密码,表格,电脑软件,excel,在设置密码后,我们应该如何破解一些Excel中的密钥文件呢让我们用下面的方法为您带来Excel窗体密码破解的07个版本。 07版excel窗体密码破解步骤: 点击下面的连接,下载软件,软件不大,直接下载,下载它是压缩包,解压压缩…

Ajax操作全局监视、用户会话故障解

Ajax操作全局监视、用户会话故障解

故障解决,操作,用户,方案,全局,Ajax操作全局监视、用户会话故障解决方案 函数($){ jQuery备份方法 无功_ajax =美元。阿贾克斯; 重写Ajax方法,首先确定登录函数是否成功 $ =函数(选择){ 无功_success =选择opt.success | |功能(A,B){ }; 无功_opt =美…

ps使文本沿着路径

ps使文本沿着路径

路径,文本,电脑软件,ps,今天的小编辑器,给大家分享PS制作的路径文字方法,只需几个步骤就可以完成,不是朋友可以参考这篇文章; 步: 1,在PS中建立一个新的空白文档,选择自定义模式模式;路径;形状选择心形; 2,画一条心形的路径,比如地图; 3,选择直接文本…

将PPT幻灯片转换成SWF动画方法

将PPT幻灯片转换成SWF动画方法

方法,动画,幻灯片,转换成,电脑软件,幻灯片制作演示是我们经常做的很多单位,但PPT格式的在线出版物,需要PowerPoint支持播放它,即使包生成的可执行文件,插入视频文件,有时会出现路径和不兼容问题,给我们的使用带来一些不便。但现在,我们可以将PPT文…

Chrome监视Web页面指定部分的更新

Chrome监视Web页面指定部分的更新

页面,电脑软件,Chrome,Web,过去,本专栏介绍了Chrome浏览器监控页面的扩展程序页面监视器。该软件可以根据用户设定的时间间隔,不断地对网页进行检查,并在网页更新的第一时间通知用户,但很多用户反映由于不能理解输入页面内容的正确表达,不能使用…

js是一个简单的例子,用来确定一组日

js是一个简单的例子,用来确定一组日

连续,日期,是一个,例子,简单,这是小组中的一个朋友的问题。当时,我说如果我能判断一天是否与它相邻,然后我认为它完全错了。 需求问题 给定5个相同的日期,你如何判断它是否连续5天 我的第一反应getday(),然后将它来回。 但是仔细想想,绝对错误…

MySQL中查询与存在查询的区别

MySQL中查询与存在查询的区别

查询,区别,电脑软件,MySQL,1。关于存在的查询 解释选择*从供应商那里存在(SELECT * FROM地区area_code = vendor_prov_code)= 10 以上是一个典型的SQL语句,用于存在查询。 它是这样工作的:每一次数据查询从供应商目录,然后在这个数据的vendor_p…

详细的解决方案的快速排序(排序)的Ja

详细的解决方案的快速排序(排序)的Ja

算法,解决方案,快速排序,排序,序列,快速排序的概念很简单,整个排序过程只需要三步: (1)在数据集中,选择一个元素作为轴心。 (2)所有小于基准的元素都移到数据的左边;大于基准的所有元素都移到数据的右边。 (3)在基准的左右两边重复两个子集的第一步…

如何在PPT中设置文本框滚动效果PPT

如何在PPT中设置文本框滚动效果PPT

滚动效果,设置,文本框,教程,如何在,为了使PPT更加生动,我们可以将文本框插入到滚动动画效果中。让我们告诉萧边如何在PPT中设置文本框的滚动效果。 一种在PPT中设置文本框滚动效果的方法 1,开始PowerPoint。首先,我们要插入文本框。在这里,我…

jQuery中切换的2个用法细节(推荐)

jQuery中切换的2个用法细节(推荐)

推荐,细节,电脑软件,jQuery,首先,在元素的单击事件中,绑定两个或两个以上函数。切换不像绑定。它需要添加单击来绑定单击触发事件。开关本身是由单击触发的(只能通过单击触发)。 以下示例如下: 我动态展示 $(函数(){()) $(# btntest ) $(# btntest (Toggl…

excel表数据下拉教程excel表

excel表数据下拉教程excel表

教程,表数据,电脑软件,excel,使用excel的朋友都知道,有很多功能可以帮助我们处理数据,节省办公时间和提高工作效率,这是广泛应用于提高技能的,具体在这里操作的是excel表数据共享的小水滴递增教程,供大家阅读和学习。 Excel表格数据下拉教程: …