- 浏览: 402794 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
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 513安装服务端 yum install -y uuid-dev ... -
ffmpag域ffmpag-php安装过程
2015-11-13 16:18 889yum install automake autoco ... -
centos6.X下安装php7脚本
2015-10-29 08:59 825#!/bin/bash #安装php7 #安装所需 ... -
Predis的一些操作汇总
2015-07-17 15:50 707//使用autoload加载相关库,这边重点就是为了requ ... -
php curl函数应用方法之模拟浏览器
2015-05-30 15:26 635原文地址:http://num7.ite ... -
php的curl函数模拟post数据提交,首次速度非常慢的处理办法
2015-05-30 15:24 728如果你用 curl_setopt 函数来与远程的webser ... -
PHP类实例教程(一):开始
2009-08-27 00:33 468从OOP(面向对象)的视角看,不应区分语言。无论是C++、无 ... -
PHP类实例教程(二):类和对象的基础部分
2009-08-27 00:41 400Everything is Object:万事万物皆对象 ... -
PHP类实例教程(三):PHP5类中的属性
2009-08-27 00:51 355属性:用来描述对象的数据元素称为对象的属性(也称为数据/状态 ... -
PHP类实例教程(四):PHP5类中的方法
2009-08-27 08:39 437方法:对对象的属性进 ... -
PHP类实例教程(五):对象的比较
2009-08-27 11:39 360在PHP中有 = 赋值符号、== 等于符号和 === 全等于 ... -
PHP类实例教程(六):构造函数
2010-01-18 17:56 240构造方法又称为构造函数,是对象被创建时自动调用的方法,用来完成 ... -
PHP类实例教程(七):析构函数与PHP的垃圾回收
2010-01-18 18:09 470析构函数:当某个对象成为垃圾或者当对象被显式销毁时执行。 ... -
PHP类实例教程(八):类的继承
2010-01-19 14:03 455继承是面向对象最重要的特点之一,就是可以实现对类的复用。 ... -
PHP类实例教程(九):访问控制 private, protected, public
2010-01-19 14:04 375在PHP5中,可以在类的属性和方法前面加上一个修饰符(mod ... -
PHP类实例教程(十):类的重写(override)
2010-01-19 14:05 477如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个 ... -
PHP类实例教程(十一):类中this关键字
2010-01-19 14:06 313PHP5中为解决变量的命 ... -
PHP类实例教程(十二):类中parent::关键字
2010-01-19 14:07 551PHP5中使用parent::来引用 ... -
PHP类实例教程(十四):设计模式之单件模式
2010-01-19 14:10 466单件模式要解决的问题就是“如何让这个类只有一个实例”。 我 ... -
PHP类实例教程(十五):final类、final方法和常量
2010-01-19 14:11 508final---用于类、方法前。 final类---不可被 ...
相关推荐
-m 最大内存使用,单位MB。默认64MB -M 内存耗尽时返回错误,而不是删除项 -c 最大同时连接数,默认是1024 -f 块大小增长因子,默认是1.25 -n 最小分配空间,key+value+flags默认是48 -h 显示帮助
只有同时安装了memcached服务和memcache扩展才可以在PHP中使用memcached提高动态网站性能 一、安装memcache的php扩展 1. php_memcache.dll 下载: 下载地址:...
一、Memcache概述 Memcache(内存,缓存) : 是一个高性能的... a 在PHP安装Memcache扩展 b 在PHP什么地方使用memcache c 实例 九、Memcache的安全(不让别人访问) 安装. 然后开始 memcached -d start
适合中大型项目, 利于项目长期维护并保持简洁; 彻底解决SQL注入, 防止跨站攻击; 完全面向对象, 易扩展; 自动载入类文件, 告别require和include; 支持模块绑定域名; 支持...
从而从根本上避免了新手未使用缓存,或缓存使用不当造成的性能不佳的问题。也杜绝了多人协同开发缓存同步及管理的问题 CmlPHP V2.x 支持根目录、子目录,单入口、多入口部署、支持独立服务器、虚拟主机、VPS等...
使用开源软件,设计高性能可扩展网站 110 面向高负载的架构Lighttpd+PHP(FastCGI)+Memcached+Squid 113 思考高并发高负载网站的系统架构 113 "我在SOHU这几年做的一些门户级别的程序系统(C/C++开发)...
判断一个框架的唯一办法是在使用中了解它。实践出真知嘛。 主要特性如下:基于MVC体系 多种据库驱动,支持多数据库,简单的切换多数据库。 超低耦合 不强制命名规范 高效缓存机制,修改一个配置切换FileCache?或...
判断一个框架的唯一办法是在使用中了解它。实践出真知嘛。 主要特性如下: 基于MVC体系 多种据库驱动,支持多数据库,简单的切换多数据库。 超低耦合 不强制命名规范 高效缓存机制,修改一个配置切换FileCache?或...
数据库增加对 group_concat 的支持,MongoDB数据库驱动支持在group查询中使用distinct查询,修复MongoDB驱动力中查询slave在新的版本里可能导致连接失败的问题 增加 BigInt 类库 日期类库完善 HttpClient 增加...
判断一个框架的唯一办法是在使用中了解它。实践出真知嘛。 主要特性如下: 基于MVC体系 多种据库驱动,支持多数据库,简单的切换多数据库。 超低耦合 不强制命名规范 高效缓存机制,修改一个配置切换File...
PHP中有eAccelerator、memcached、xcache、APC 4个加速、缓存扩展,下面给大家介绍下其区别,一起看看吧! 折腾VPS的朋友,在安装好LNMP等Web运行环境后都会选择一些缓存扩展安装以提高PHP运行速度,常被人介绍的...
社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,众多 的典型案例确保可以稳定用于商业以及门户级的开发。 经过6年的不断积累和重构,3.0版本在框架底层的定制和扩展方面趋于完善, 使得应用的...
修正了PHP iconv和gd库冲突的BUG,增加了PHP mcrypt、memcache扩展,修改了PHP和Nginx编译参数,优化了Nginx配置文件,添加了部分功能。Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,也是一个 ...
好文本网站内容管理系统(GCMS)还有很多不足,以后会不断成长,目前仅仅是免费试用阶段,是否使用请您自行决定,如果使用中出现问题,我们会尽力查找原因,努力解决,如果造成您的损失或其它不良后果,《好文本网》...
高性能扩展 可以继承memcache,redis等内存缓存运用 大数据量 无需担心数据量足够大的时候,系统跑不了,WODECMS是轻便灵活的,修改一点点代码后可以继续支持你的业务需要 功能插件化 按照官方提供的插件为蓝本...
CmlPHP支持分布式数据库、分布式缓存(使用memcache缓存驱动),支持文件、memcache、redis、apc等缓存,支持多种url模式,支持URL路由,支持多项目集成、支持第三方扩展、支持插件... 好文本网站内容管理系统(GCMS...
并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。...
Leaps PHP Framework是一个性能卓越并且功能丰富的轻量级PHP开发框架,宗旨就是让WEB应用开发更简单、更快速。 Leaps 2.0.1 更新日志:2015-06-25 修复PHP5.4不兼容的正则表达式 主要特性如下: 基于MVC...