|
  
- UID
- 1
- 帖子
- 4814
- 精华
- 41
- 积分
- 555
- 阅读权限
- 200
- 来自
- 中国PHP联盟
- 在线时间
- 576 小时
- 注册时间
- 2007-12-10
- 最后登录
- 2010-7-29
|
初试redis,比memcached 快10倍速
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffxie.blog.51cto.com/1365360/292106
引用python中国某文章里的一段话:
"Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,
在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。
问题是这个项目还很新,可能还不足够稳定,而且没有在实际的一些大型系统应用的实例。
此外,缺乏mc中批量get也是比较大的问题,始终批量获取跟多次获取的网络开销是不一样的。"
http://www.okpython.com/bbs/view ... amp;highlight=redis
初试redis,从某种意义上讲,memcached已经做的相当不错了。
但经同事介绍,知道了redis,redis的读写速度相当不错,并且可以定时或不定时的将内存中的数据备份到磁盘
真正做到了安全,快捷的目的。
下面我就将我的安装心得写出来,希望解占辉能帮助刚刚接触 redis的朋友。
首先获取redis,我一般情况下python中国下载,那里LINUX主流软件基本都有。
http://www.okpython.com/bbs/view ... amp;highlight=redis
[root@localhost /]# cd /soft
[root@localhost soft]# tar zvxf redis-1.2.6.tar.gz
[root@localhost redis-1.2.6]# make
#复制两个配置文件和命令文件到以下对应目录
cp redis.conf /etc/redis/
cp redis-benchmark redis-cli redis-server /usr/bin/
2. 修改部分参数
#设定内核参数
echo 1 > /proc/sys/vm/overcommit_memory
#修改 /etc/redis/redis.conf
daemonize yes
logfile /dev/null #日志文件路径
启动redis
[root@localhost redis-1.2.6]# redis-server /etc/redis/redis.conf
New pid: 983
3.测试服务是否正常
redis-benchmark
====== SET ======
10000 requests completed in 0.24 seconds
50 parallel clients
3 bytes payload
keep alive: 1
1.15% <= 0 milliseconds
80.95% <= 1 milliseconds
99.66% <= 2 milliseconds
99.70% <= 3 milliseconds
99.73% <= 4 milliseconds
99.76% <= 5 milliseconds
99.78% <= 6 milliseconds
99.81% <= 7 milliseconds
99.83% <= 8 milliseconds
99.85% <= 9 milliseconds
99.87% <= 10 milliseconds
99.89% <= 11 milliseconds
99.91% <= 12 milliseconds
99.93% <= 13 milliseconds
99.95% <= 14 milliseconds
99.96% <= 15 milliseconds
99.98% <= 16 milliseconds
100.00% <= 17 milliseconds
40983.61 requests per second
====== GET ======
10001 requests completed in 0.11 seconds
50 parallel clients
3 bytes payload
keep alive: 1
48.79% <= 0 milliseconds
99.50% <= 1 milliseconds
99.53% <= 2 milliseconds
99.60% <= 3 milliseconds
99.65% <= 4 milliseconds
99.69% <= 5 milliseconds
99.72% <= 6 milliseconds
99.75% <= 7 milliseconds
99.81% <= 8 milliseconds
99.86% <= 9 milliseconds
99.91% <= 10 milliseconds
99.96% <= 11 milliseconds
100.00% <= 12 milliseconds
90918.18 requests per second
一切正常运转
基于命令行测试:
[root@localhost redis-1.2.6]# redis-cli set spawn king
OK
[root@localhost redis-1.2.6]# redis-cli get spawn
king
下载基于redis的PHP模块:
[root@localhost redis-1.2.6]# cd ..
[root@localhost soft]# svn checkout http://phpredis.googlecode.com/svn/trunk/
[root@localhost soft]# cd trunk/
[root@localhost trunk]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
重编译PHP
[root@localhost trunk]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@localhost trunk]# make && make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
将extension_dir = redis.so加入到php.ini
[root@localhost trunk]# vi /usr/local/lib/php.ini
写个PHP测试代码:
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$redis->set('spawn','king');
echo $redis->get('spawn');
//result:king
另有一个PHP代码的实现版本,可参考以下文件
http://code.google.com/p/redis/s ... lient-libraries/php
不过似乎不好用
以下是官网提供的方法,目前没有发现问题。
http://code.google.com/p/php5-redis/downloads/list
性能测试结果:
SET操作每秒钟 110000 次,GET操作每秒钟 81000 次
效率正好是memcache的10倍以上。
希望解占辉的文章能够帮助大家,有技术问题可以及时与我沟通,jeffxie@gmail.com
本文出自 “架构师-解占辉” 博客,请务必保留此出处http://jeffxie.blog.51cto.com/1365360/292106 |
|