redis的hGetAll函数的性能问题

在没关注这个函数之前,一直用的Memcache的数据存储方式,但是自从更换了redis之后,对于一个hash的数据存与取 对于Memcache方便甚多,但是问题来了,一个hash的列表如果量不大的情况,用hGetAll函数几乎看不出问题,一旦这个列表超过50或者更多时,此时用hGetAll函数便能很直观的看到性能问题,这里就不作数据分析了。

Redis是单线程的!当它处理一个请求时其他的请求只能等着。通常请求都会很快处理完,但是当我们使用HGETALL的时候,必须遍历每个字段来获取数据,这期间消耗的CPU资源和字段数成正比,如果还用了PIPELINING,无疑更是雪上加霜。

Read more

PHP下的Redis使用与总结

关于redis的介绍这里就不写了,百科就能查到,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

一、利用PHP自带的libredis扩展库进行连接操作

Read more

rsync安装与使用细节

老套的搬用一下rsync的介绍,rsync是Linux系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试。它的特性如下:

1、可以镜像保存整个目录树和文件系统。
2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。

Read more

使用google验证码防止注册机/发帖机for discuz7.2

http://bbs.mudbest.com目前已经采用google验证码方案,平时注册机/发帖机 盯得比较紧,点触验证码感觉还行,只是广告不太喜欢,看到google提供了一个验证码的接口。想到将将原来的discuz默认验证码更换掉成google的验证码,就是用户体验不怎么好。

1、首先到https://www.google.com/recaptcha/admin/create 注册应用。
2、打开http://code.google.com/p/recaptcha/downloads/list?q=label:phplib-Latest ,下载接口文件。
3、拿到注册应用后得到公用key和私有key。

Read more

ubuntu下搭建nginx相关服务

code太久,回头还要研究webservice,接着就在自己的vm机上搭建了一个ubuntu系统,开始了nginx各种实验,当然,实验前必须得安装nginx了。

引用:
【“Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。
Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中包括新浪博客、新浪播客、网易新闻等门户网站频道,六间房、56.com等视频分享网站,Discuz!官方论坛、水木社区 等知名论坛,豆瓣、YUPOO相册、海内SNS、迅雷在线等新兴Web 2.0网站。”】。

Read more

续PHP下webSerives的nusoap使用

呼…才发现很久没发博客了,真的实在是太忙了。平时还要抽点时间维护http://bbs.mudbest.com 。

平时很少写webService,一般都是需要给第三方提供接口的时候才去写。偶然的一个机会,打开了项目里现有的webService文件,发现前人所写的webService都是以简单的创建一个类,再将类里面的函数暴露给第三方调用,连WSDL都不支持,这就不是规范的webService接口定义了。

开发人员应该都知道,传统的webService是有wsdl支持的,就是介绍了,传入和返回,以及webService的一些基本结构介绍信息,这能很大限度的增加接口可读性和参考性。希望所有开发者能够自我养成良好的编码习惯,开发者最忌讳的就是怕麻烦,请尊重自己的职业。

Read more

关于php在unserialize时返回false

今天碰到一个很畸形的问题,在进行反序列化时,结果返回了false,仔细检查了下,原来是序列化时编码与反序列化时编码问题。

平时很少注意这个,原因是编码不一致时单引号和双引号有差别。

以下函数进行替换可解决此问题。

Read more

命令行执行php可选参数

在web上访问url的时候,往往只需要在执行文件后跟上“?”,”&” 连接符即可带上参数,而在命令行同样也能传递参数。翻看了一下php手册,有介绍关于php在命令行下执行所需要带上参数的资料。

$argv — 传递给脚本的参数数组

例如windows下,php环境在e:/server/php5.4/。

然后在命令行可以直接使用

用法1:e:/server/php5.4/php xxx.php

用法2:e:/server/php5.4/php xxx.php param1 param2

Read more