数据库

 首页 > 数据库 > Redis > phpredisclient稳定性测试

phpredisclient稳定性测试

分享到:
【字体:

一直有个想法,做一个只有redis作数据库的系统,一直对redis的功能比较赞赏,但不知道redis的单线程稳定性如何,之前测试过100万Key的写入锁,今天又测试了一下正常读写下redis cli的get稳定性。

结果看起来还可以,2万次左右的单次读取锁0.001秒,如果每次展示需要读取300次cache,整体来说,在redis上的时间损失也不超过0.1秒,跟mysql动则0.1秒的查询效率来看,还是快得多了。

但还不会做redis db集群和数据恢复,学习ing。
官方网站 http://redis.io/
Redis命令 http://redis.io/commands
Redis协议 http://redis.io/topics/protocol
NoSQLFan Redis资料汇总专题 http://blog.nosqlfan.com/html/3537.html

Ubuntu 12.04 Aspire,10G

shuhai@Aspire:/wwwroot/php/redis$ cat /proc/meminfo 
MemTotal:       10092540 kB
MemFree:         4093172 kB
Buffers:          629836 kB
Cached:          2685732 kB

redis版本

shuhai@Aspire:/wwwroot/php/redis$ rediscli v
rediscli 2.2.12
shuhai@Aspire:/wwwroot/php/redis$ redisserver v
Redis server version 2.2.12 (00000000:0)

测试一,读取锁时间

shuhai@Aspire:/wwwroot/php/redis$ php locktest.php 
60910 => 0.0011389255523682
10954 => 0.0012128353118896
6543 => 0.0011680126190186
599 => 0.0013341903686523
89891 => 0.0011501312255859
20667 => 0.001054048538208
94608 => 0.0011560916900635
127 => 0.0016088485717773
380 => 0.0011329650878906
6977 => 0.0019309520721436
21108 => 0.0011842250823975
31646 => 0.0012660026550293
143386 => 0.0012049674987793
connect("tcp://127.0.0.1:6379");

$count = 0;
while(true)
{
	$s = microtime(true);
	$redis>get('shuhai');
	$e = microtime(true);
	$t = $e$s;
	$count ++;
	if($t > 0.001)
	{
		echo "$count => $tn";
		$count = 0;
	}
}

测试二,平均锁读取数量

shuhai@Aspire:/wwwroot/php/redis$ php locktest.php 
23260
18449.5
40499
30982
32170.6
32801.666666667
33552.428571429
31086.875
27664.333333333
28921.5
27306.545454545
25048.25
23313.923076923
22005.285714286
24101.866666667
26472.0625
25839.764705882
24858.722222222
26115.210526316
25114.75
24149.714285714
29368.954545455
shuhai@Aspire:/wwwroot/php/redis$ cat locktest.php 
connect("tcp://127.0.0.1:6379");

$count = 0;
while(true)
{
	$s = microtime(true);
	$redis>get('shuhai');
	$e = microtime(true);
	$t = $e$s;
	$count ++;
	if($t > 0.001)
	{
		$array[] = $count;
		echo array_sum( $array ) / count( $array ) . "n";
		$count = 0;
	}
}
分享到:
没有了!
redis发布订阅(pub/sub)是一种消息通信模...
  发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布者和消息订阅者之间的耦合,这点和设计模式中的观察者模式比较相似。pub /sub不仅仅解决发布者和订阅者直接代码级别耦合也解决两者在物理部署上的耦合。redis作为一个pub/sub server,在订阅者和发布者之间起到了消息路由的功能。订阅者可以通过subscribe...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……