对MySQL进行查询的代码
import java.sql.*;
public class MySQLTime
{
public static void main(String[] args)
{
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/gaysys","root","123456");
String sql = "SELECT id FROM admin WHERE id LIKE 'admin'";
Statement statement = connection.createStatement();
int sum=0;
long startTime=System.currentTimeMillis();
while (true)
{
long endTime=System.currentTimeMillis();
if (endTime-startTime>1000)
{
break;
}else
{
sum++;
ResultSet resultSet = statement.executeQuery(sql);
}
}
System.out.println("MySQL数据库每秒执行"+sum+"次查询");
} catch (ClassNotFoundException e)
{
e.printStackTrace();
} catch (SQLException e)
{
e.printStackTrace();
}
}
}
结果
MySQL数据库每秒执行4980次查询
对Redis进行查询的代码
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Pipeline;
public class RedisTime
{
public static void main(String[] args)
{
//连接redis服务器(在这里是连接本地的)
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.set("test","12345");
int sum=0;
long startTime=System.currentTimeMillis();
//采用流水线
Pipeline pipeline=jedis.pipelined();
while (true)
{
long endTime=System.currentTimeMillis();
if (endTime-startTime>1000)
{
break;
}else
{
sum++;
pipeline.get("test");
}
}
pipeline.sync();
System.out.println("redis每秒执行"+sum+"次查询");
}
}
结果
redis每秒执行641513次查询
结论
虽然两种查询并未完全遵守单一变量原则,氮素,应该勉强可以看出二者性能完全不是一个数量级的