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

由于binlog未及时清理导致硬盘爆满无法启动mysql

这几天由于太忙了,7天没有观察服务器了,今天用手机打开网站发现报mysql.sock丢失的错误,刚开始以为是my.ini修改的原因,用df一看,/dev/xvda1的占用已经100%了,这样的情况还能启动mysql就真的逆天了。这时候想到了用sql删除binlog,但是根本进不去控制台,连安全模式都启动不了,以下是具体操作。

Read more

linux终止超时的进程

目前服务器数据接口调用的地方较多,虽然将超时控制的很好了,但依然还是有超时的脚本占了进程,由于作了-eq这样的判断进程数的方法,超时进程的导致无法开启新进程,根据进程的执行时间可以判断是否为超时进程,并kill掉即可解决问题。

shell:

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