- 浏览: 427079 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
fufu0414:
PHP类实例教程:abstract类和abstract方法 -
fufu0414:
[list][url][img][img][img][list ...
PHP类实例教程:abstract类和abstract方法
Memcached是一个高性能分布式缓存系统,目前估计是很多公司的标配了,因为他被非常广泛的使用,在各种语言下都有其丰富的client,所以很多后端服务也采用了兼容的memcached协议,比如memcachedb, ttserver等等。所以最近我开发的队列服务器也采用了memcached协议,底层是基于磁盘的存储,单独测试底层存储的性能非常好,在我台式机能达到每秒写入3万1K的数据。
今天用php测试了下往刚刚开发的队列服务器(icqueue)插入数据,代码如下:
<?php
$mem=new Memcache();
$mem->addServer ("127.0.0.1",12001,false,1,100);
$start=microtime(true);
$str= str_repeat ("a",1024);//1k数据
for($i=0;$i<100000;$i++){
$mem->add("bbs_password_",$str,0,0);//入队,bbs为队列名称,password为密码
}
echo microtime(true)-$start;
?>
执行:[root@sunlitest1 bbs]# /usr/local/php/bin/php mem.php
5.6957609653473
花了5秒,感觉速度还是挺快,还是单进程跑的。接着我想测试大一点的数据,把其中的
$str= str_repeat ("a",1024);//1k数据
改为
$str= str_repeat ("a",1024*10);//10k数据
执行:[root@sunlitest1 bbs]# /usr/local/php/bin/php mem.php发现速度非常的慢,等了1分钟也没有成功。怀疑是队列服务(icqueue)有问题,又换成memcached服务器写数据测试,发现速度同样的慢。
这就排除了是服务端的问题。经过调整数据的大小,发现只要达到8K就非常慢。
然后怀疑是不是到了8K memcach自动进行了压缩,是压缩很慢呢?又去telnet进去,发现数据是没有压缩的。
剩下的问题应该就是网络问题了,翻看了memcach扩展的手册,发现其中memcache.chunk_size的大小默认是8K,灵感一现,希望就是这这个问题导致的。
然后又改代码:
<?php
ini_set('memcache.chunk_size',1024*15);//设置到15K
$mem=new Memcache();
$mem->addServer ("127.0.0.1",12001,false,1,100);
$start=microtime(true);
$str= str_repeat ("a",1024*10);//10k数据
for($i=0;$i<100000;$i++){
$mem->add("bbs_password_",$str,0,0);//入队,bbs为队列名称,password为密码
}
echo microtime(true)-$start;
?>
执行:[root@sunlitest1 bbs]# /usr/local/php/bin/php mem.php
10.800881147385
跑了10完成,OK,问题解决了。
memcache.chunk_size在php.ini设置的。大小推荐设置为你的数据的常规大小。
发表评论
-
CentOS 上安装Gearman及其PHP扩展
2016-01-11 19:48 556安装服务端 yum install -y uuid-dev ... -
ffmpag域ffmpag-php安装过程
2015-11-13 16:18 953yum install automake autoco ... -
centos6.X下安装php7脚本
2015-10-29 08:59 877#!/bin/bash #安装php7 #安装所需 ... -
Predis的一些操作汇总
2015-07-17 15:50 758//使用autoload加载相关库,这边重点就是为了requ ... -
php curl函数应用方法之模拟浏览器
2015-05-30 15:26 681原文地址:http://num7.ite ... -
php的curl函数模拟post数据提交,首次速度非常慢的处理办法
2015-05-30 15:24 782如果你用 curl_setopt 函数来与远程的webser ... -
PHP类实例教程(一):开始
2009-08-27 00:33 502从OOP(面向对象)的视角看,不应区分语言。无论是C++、无 ... -
PHP类实例教程(二):类和对象的基础部分
2009-08-27 00:41 441Everything is Object:万事万物皆对象 ... -
PHP类实例教程(三):PHP5类中的属性
2009-08-27 00:51 399属性:用来描述对象的数据元素称为对象的属性(也称为数据/状态 ... -
PHP类实例教程(四):PHP5类中的方法
2009-08-27 08:39 474方法:对对象的属性进 ... -
PHP类实例教程(五):对象的比较
2009-08-27 11:39 403在PHP中有 = 赋值符号、== 等于符号和 === 全等于 ... -
PHP类实例教程(六):构造函数
2010-01-18 17:56 275构造方法又称为构造函数,是对象被创建时自动调用的方法,用来完成 ... -
PHP类实例教程(七):析构函数与PHP的垃圾回收
2010-01-18 18:09 516析构函数:当某个对象成为垃圾或者当对象被显式销毁时执行。 ... -
PHP类实例教程(八):类的继承
2010-01-19 14:03 501继承是面向对象最重要的特点之一,就是可以实现对类的复用。 ... -
PHP类实例教程(九):访问控制 private, protected, public
2010-01-19 14:04 436在PHP5中,可以在类的属性和方法前面加上一个修饰符(mod ... -
PHP类实例教程(十):类的重写(override)
2010-01-19 14:05 518如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个 ... -
PHP类实例教程(十一):类中this关键字
2010-01-19 14:06 343PHP5中为解决变量的命 ... -
PHP类实例教程(十二):类中parent::关键字
2010-01-19 14:07 595PHP5中使用parent::来引用 ... -
PHP类实例教程(十四):设计模式之单件模式
2010-01-19 14:10 499单件模式要解决的问题就是“如何让这个类只有一个实例”。 我 ... -
PHP类实例教程(十五):final类、final方法和常量
2010-01-19 14:11 548final---用于类、方法前。 final类---不可被 ...
相关推荐
**PHP与Memcache扩展在Windows环境下的配置与应用** ...在Windows环境下,配置和使用PHP Memcache扩展需要关注兼容性、服务配置以及代码实现,通过合理的设计和优化,可以充分利用Memcache的性能优势。
标题 "php7 memcache扩展" 描述 "php7.0 7.1 (vc14/vc15) memcache扩展 windows(x86/x64)" 提及了几个关键概念,包括PHP7、memcache扩展以及适用于Windows平台的不同架构版本。这里,我们将深入探讨这些主题,并...
现在,你可以开始在PHP代码中使用Memcache扩展了。首先,需要引入`Memcache`类库,然后创建连接,存储和获取数据: ```php <?php $memcache = new Memcache; $memcache->connect('localhost', 11211); // 默认...
在PHP5.5版本中,对于32位和64位操作系统,需要安装对应的memcache扩展才能使用。这个扩展通常以`.dll`文件形式提供,例如 `memcache.dll`,这是Windows环境下PHP的动态链接库文件。在Linux或Mac等其他操作系统上,...
标题 "php7,memcache扩展...总之,这个压缩包提供的PHP7-memcache扩展是Windows环境下开发PHP应用程序时,与Memcached服务器配合使用的必要组件。正确安装和配置这个扩展,可以极大地提升基于PHP的Web应用的运行效率。
Memcache是PHP中一个非常重要的扩展,它允许开发者在PHP应用程序中使用Memcached内存缓存系统,从而提高数据处理的速度和效率。 描述中提到,“该资源包含php5.6、php7.0及php7.1的memcache扩展”,这意味着用户...
这意味着用户无论使用哪个版本的PHP,都能找到兼容的memcache扩展来启用或增强其网站或应用程序的缓存功能,从而提高性能。 **memcache扩展介绍:** Memcache是一个广泛使用的分布式内存对象缓存系统,它可以存储...
PHP的Memcache扩展同样提供了与Memcache服务通信的接口,可以方便地将数据存储和检索到内存中,提高网站的性能。 在Windows环境下,安装这些扩展通常需要手动配置或使用预编译的二进制文件。描述中提到的“每次安装...
总的来说,PHP 5.4 Memcache 扩展是提升 Web 应用性能的关键工具,通过合理使用它可以极大地优化数据库操作,提高用户体验。确保正确安装和配置扩展,并善用提供的函数,可以有效利用 Memcached 的优势,为你的项目...
在PHP 5.3这个版本中,开发者可以使用Memcache扩展来集成Memcached服务。这个扩展提供了丰富的函数接口,如`memcache_connect()`用于连接到Memcached服务器,`memcache_get()`和`memcache_set()`用于获取和设置缓存...
"亲测可用"意味着这个php_memcache扩展已经在该环境下成功运行,用户可以放心在类似配置的环境中使用。 "我用的试xammp"指的是XAMPP,一个流行的开源跨平台Web服务器解决方案,包含了Apache、MySQL、PHP和Perl等...
1. **安装Memcached扩展**:对于PHP5.2以下的版本,可能需要使用Memcached扩展而非Memcache扩展。安装过程与上述类似,但需找到对应版本的`php_memcached.dll`。 2. **配置Memcached**:同样,在`php.ini`中启用`...
综上所述,PHP的Memcache扩展是提高Web应用程序性能的有效工具,但需要根据具体的应用场景和需求选择合适的版本,并合理配置和使用。同时,随着技术的发展,还有如Redis这样的更强大、更灵活的缓存解决方案可供选择...
PHP Memcache扩展是PHP与Memcached缓存系统交互的关键工具,它使得在PHP环境中能够高效地存储和检索数据,从而提高Web应用的性能。Memcached是一个分布式内存对象缓存系统,它能用来临时存储动态数据库结果,减少...
在PHP中,Memcache扩展允许开发者将数据存储到Memcached服务器上,以便后续请求可以快速获取这些数据,从而提高整体性能。 本篇文章主要围绕"PHP Memcache多版本拓展"进行详细讲解,包括其适用环境、安装步骤、使用...
以下是关于PHP-Memcache扩展和Memcache服务器安装及使用的详细说明: 1. **PHP-Memcache扩展安装**: - 首先,确保你的PHP环境已经安装并配置好,比如PHP 5.4、5.3或5.2。 - 下载与PHP版本匹配的`...
现在,PHP7已经成功安装了Memcache扩展,可以在代码中使用`memcache`类进行缓存操作。 在实际应用中,使用Memcache扩展可以实现以下功能: - **缓存数据**:通过`memcache_connect()`函数连接到Memcache服务器,...
这个压缩包中包含的就是phpmemcache.dll文件,它是PHP与MemCache服务器通信的关键组件。将这个文件放入PHP的“ext”目录下后,还需要在php.ini配置文件中启用该扩展。添加或修改以下行: ```ini extension=...
在PHP中,Memcache扩展允许开发者将数据存储在内存中,以便快速访问。 1. **安装Memcache扩展** - 首先,你需要下载适用于PHP 5.3.13的Windows版Memcache扩展。这通常是一个`.dll`文件,例如`php_memcache.dll`。 ...