十分简单的redis使用说明及性能测试
作者:网络转载 发布时间:[ 2014/1/15 14:48:54 ] 推荐标签:性能测试 软件测试
是不是非常简单呢?
<p></p>
<p>不过需要注意的是,redis接受的数据是字符串,对于二进制数据,可以通过base64编码来解决。具体可参看我的另一篇文章。</p>
<p></p>
<h1><a name="t3"></a>4.Java访问redis</h1>
<p>redis可以支持多种语言,当然也可以支持Java。</p>
<p>首先需要下载redis的java包。jedis.jar。这里提供一个下载地址:<a target="_blank" href="http://download.csdn.net/detail/jmppok/6834151">redis的Java客户端jedis</a></p>
<p>使用如下:</p>
<p></p>
<pre code_snippet_id="151033" snippet_file_name="blog_20140110_4_2824204" name="code" class="java">Jedis jedis = new Jedis("192.168.150.135");
jedis.set("100","this is a test");
String data = jedis.get("100");
</pre><br>
<br>
<p></p>
<h1><a name="t4"></a>5.性能测试</h1>
<p>测试方法:向redis写一个1M的数据,分别写10次,读10次,计算其耗时。分C++和Java两个版本进行测试。<br>
</p>
<h2><a name="t5"></a>C++测试代码</h2>
<p></p>
<pre code_snippet_id="151033" snippet_file_name="blog_20140110_5_8505805" name="code" class="cpp">#include <stdio.h>
#include "hiredis.h"
#include <string.h>
#include <time.h>
int main(int argc, char **argv)
{
printf("CLOCKS_PER_SEC:%d
",CLOCKS_PER_SEC);
redisContext *c;
redisReply *reply;
c = redisConnect((char *)"one-60",6379);
char * pData;
reply = (redisReply *)redisCommand(c,"GET 0");
int size = strlen(reply->str);
pData = new char[size+1];
strcpy(pData,reply->str);
freeReplyObject(reply);
clock_t start, finish;
start = clock();
for(int i=0;i<10; i++)
{
reply = (redisReply *)redisCommand(c,"GET %d",i);
freeReplyObject(reply);
}
finish = clock();
double duration = (double)(finish - start) / CLOCKS_PER_SEC*1000;
printf("GET Time used:%f ms.
",duration);
start = clock();
for(int i=0;i<10; i++)
{
reply = (redisReply *)redisCommand(c,"SET %d %s",i,pData);
freeReplyObject(reply);
}
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC*1000;
printf("SET Time used:%f ms.
",duration);
delete []pData;
redisFree(c);
}
</pre>测试结果
<p></p>
<p></p>
<pre code_snippet_id="151033" snippet_file_name="blog_20140110_6_1363508" name="code" class="plain">CLOCKS_PER_SEC:1000000
GET Time used:190.000000 ms.
SET Time used:70.000000 ms.
</pre><br>
<br>
<p></p>
<h2><a name="t6"></a>Java测试代码<br>
</h2>
<p></p>
<pre code_snippet_id="151033" snippet_file_name="blog_20140110_7_633160" name="code" class="java">import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Date;
import redis.clients.jedis.Jedis;
public class JedisTest {
public static void main(String[] args)
{
Jedis jedis = new Jedis("10.100.211.232");
String f = "/tmp/e2.txt.backup";
try
{
File file = new File(f);
BufferedReader reader = new BufferedReader(new FileReader(file));
String data = reader.readLine();
reader.close();
Date start = new Date();
for(int i=0; i<10; i++)
{
jedis.set(i+"", data);
}
Date end = new Date();
System.out.println("Set used(ms):"+(end.getTime()-start.getTime()));
start = new Date();
for(int i=0; i<10; i++)
{
String v = jedis.get(i+"");
}
end = new Date();
System.out.println("Get used(ms):"+(end.getTime()-start.getTime()));
}catch (Exception e)
{
e.printStackTrace();
}
jedis.disconnect();
}
}</pre><br>
测试结果
<p></p>
<p></p>
<pre code_snippet_id="151033" snippet_file_name="blog_20140110_8_8615272" name="code" class="plain">Set used(ms):1212
Get used(ms):1437</pre><br>
6.总结
<p></p>
<p>redis效率还是非常高的,读写1M数据的数据,耗时都在10ms左右。<br>
</p>
<p><br>
</p>
<pre></pre>
<pre></pre>
</pre></pre></pre></pre></pre></pre>
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11