starling安装步骤
centos默认不带ruby,得重新装,以下安装步骤都是以root身份跑的。
yum install ruby ruby-devel rubygems
gem install memcache-client starling
如果你使用yum找不到ruby的相关包,请记得添加epel repository。安装之后新增的程序:
* /usr/bin/starling #一个ruby脚本,starling的服务程序
* /usr/bin/starling_top #starling的状态检查程序,可以查看starling的运行状态,类似memcache的状态显示,不同的是能够显示每个key的状态
starling启动后默认会在22122端口蹲点守候。
为了使用方便,我修改了一个starling在centos下的启动脚本,放在/etc/init.d/starling,下载地址:http://customcode.googlecode.com/files/starling。使用方法:
/etc/init.d/starling start|stop|restart
测试程序
以下是在测试中用的php脚本,说实话php在循环比较大的时候没啥优势,但是关键是简单,几行就搞定了。
写入的测试程序
PLAIN TEXT
CODE:
1. #!/usr/bin/php
2. <?php
3. $m = new Memcache;
4. $m->addServer('127.0.0.1', '22122');
5.
6. $start = microtime(true);
7.
8. for($i = 0; $i <10000; ++$i) {
9. //echo $i, "\n";
10. $m->set('testtesttesttest', '中文测试中文测试中文测试中文测试中文测试中文测试中中文测试中中文中a');
11. }
12. echo "time:" . (microtime(true) - $start), "\n";
读出来的测试程序
PLAIN TEXT
CODE:
1. #!/usr/bin/php
2. <?php
3. $m = new Memcache;
4. $m->addServer('127.0.0.1', '22122');
5.
6. while(1) {
7. echo $m->get('test'), "\n";
8. usleep(100); // 休息一下,否则容易cpu 100%
9. }
性能测试
测试条件:
* key的长度16B
* value的长度100B,
* 8个并发写入进程
* 每个进程插入10,000条记录
平均每个进程花了7秒完成写入操作,那么照这样计算:
10000 * 8 / 7 = 每秒写入11428次
以上测试进行的比较随意,而且我懒得插入大量数据来测试了,这个比较花时间,所以测试结果仅供参考。由于starling是目前twitter在生产环境中运行的,经过实践检验过,稳定性应该不成问题。