我是新來的Redis,並開始與下面的鏈接
http://www.aspieschool.com/wiki/index.php?title=Redis_vs_MySQL_(Benchmarks)
這都說明My sql write
正在採取更少的時間比redis write
和Redis的讀取服用時間少於mysql read
。但在我的情況下,情況恰恰相反。
我使用下面的代碼寫入到MySQL:
Redis的V/S PHP的MySQL
<?php
$con=mysql_connect("localhost","root","");
if(!$con)
{
die('unable to connect ');
}
mysql_select_db("redistest",$con);
for($i=0;$i<100000;$i++){
$query = "insert into `test`(`name`) values ('Rohit')";
mysql_query($query);
}
?>
它大約走3分鐘,在Redis的我使用的代碼如下:
require 'predis-0.8/autoload.php';
$single_server = array(
'host' => '127.0.0.1',
'port' => 6379,
'database' => 15
);
$multiple_servers = array(
array(
'host' => '127.0.0.1',
'port' => 6379,
'database' => 15,
'alias' => 'first',
),
array(
'host' => '127.0.0.1',
'port' => 6380,
'database' => 15,
'alias' => 'second',
),
);
// simple set and get scenario
$time_start = microtime(true);
$client = new Predis\Client($single_server);
$client->flushall();
for($i=0;$i<5000;$i++){
echo $client->lPush('key8', 'C');
echo "<br>";
}
//$retval = $client->get('rohit');
//$ass = array();
//$ass = $client->lrange('key8',0,-1);
//foreach($ass as $ass)
//echo "<br/>$ass";
$time_end = microtime(true);
$diff = $time_end - $time_start;
echo "<br/>".$diff;
//var_dump($retval);
,並正在約1.292163848877秒:
在從MySQL讀取:
<?php
$time_start = microtime(true);
$con=mysql_connect("localhost","root","");
if(!$con)
{
die('unable to connect ');
}
mysql_select_db("redistest",$con);
$sql="select * from `test`";
$result = mysql_query($sql);
while($results = mysql_fetch_array($result))
{
foreach($results as $results)
$results."<br/>";
}
$time_end = microtime(true);
$diff = $time_end - $time_start;
echo "<br/>".$diff;
?>
它大約0.040173053741455秒
而且使用Redis的考慮:
$time_start = microtime(true);
$client = new Predis\Client($single_server);
//$client->flushall();
//for($i=0;$i<5000;$i++){
//echo $client->lPush('key8', 'C');
//echo "<br>";
//}
//$retval = $client->get('rohit');
$ass = array();
$ass = $client->lrange('key8',0,-1);
foreach($ass as $ass)
//echo "<br/>$ass";
$time_end = microtime(true);
$diff = $time_end - $time_start;
echo "<br/>".$diff;
它大約花費時間0.13404297828674秒。任何人都可以告訴我,我哪裏出錯了?
我對redis的瞭解不多,但是如果您有innodb表並在事務中執行插入操作,您可以大幅增加mysql寫入速度。 – Masse 2013-03-04 09:10:17