原生Redis技术性能评测(原生redis评测)
随着Redis数据库在存储和操作方面日趋强大,开发者也在寻求Redis性能的最佳体验,因此对Redis技术性能的评估就变得越来越重要。这里,用原生的Redis技术性能进行了测试评估。
首先安装Redis,这里采用的安装方法为在终端环境下直接运行安装文件,以落地安装的方式,也可以使用其他的安装方法。
接下来,编写测试文件,用来根据一定的业务场景进行性能测试,比如数据存储、数据取出、字符串拼接等,将测试文件写为以下代码:
#include
#include
#include
#include
#include
#include
//声明变量 int storeCount;
//redis地址 char redis_ip[50];
//redis端口 int redis_port;
//字典长度 int dict_length;
//循环次数 int loop_time;
//字典 char dict[100][100];
//查找取出的结果 char result[100];
//获取当前时间 long getCurrentTime(){
struct timeval tv; gettimeofday(&tv, NULL);
return tv.tv_sec*1000 + tv.tv_usec/1000; }
//模拟数据存储 void storeData(){
long startTime = getCurrentTime(); for(int i=0;i
//存放数据 char setStr[128] = "SET key:";
strcat(setStr,dict[i]); strcat(setStr, " 12345");
//不用结果,只是进行操作 system(setStr);
} long costTime = getCurrentTime() - startTime;
printf("存储数据数量:%d \t 总耗时:%ld\n",storeCount,costTime); }
//模拟数据取出 void getData(){
long startTime = getCurrentTime(); //随机取出数据
int randomNum = rand()% dict_length; char getStr[128] = "GET key:";
strcat(getStr,dict[randomNum]); FILE *fd;
const int MAX_JSON_LEN=256; char file_buf[MAX_JSON_LEN];
memset(file_buf, 0, sizeof(file_buf)); fd = popen(getStr,"r");
if( fd != NULL ){ fread(file_buf,sizeof(char),MAX_JSON_LEN,fd);
strcpy(result,file_buf); }
pclose(fd); long costTime = getCurrentTime() - startTime;
printf("取出数据为:%s \t 总耗时:%ld\n",file_buf,costTime); }
//字符串拼接 void connectStr(){
long startTime = getCurrentTime(); char *str1 = "This is a string";
char *str2 = " concat two string."; int len1 = strlen(str1);
int len2 = strlen(str2); char *str3 = (char *)malloc(len1+len2+1);
memset(str3,0,len1+len2+1); strcpy(str3,str1);
strcat(str3,str2); printf("拼接后的字符串为:%s\t",str3);
long costTime = getCurrentTime() - startTime; printf("总耗时:%ld\n",costTime);
}
int mn(int argc,char *argv[]){ strcpy(redis_ip, argv[1]);
redis_port = atoi(argv[2]); dict_length = atoi(argv[3]);
loop_time = atoi(argv[4]);
//进行字典初始化 for(int i= 0;i
memset(dict[i], 0, 100); sprintf(dict[i],"Test-%d",i);
}
//数据存储 storeCount = 1000;
storeData(); printf("------------------------\n");
//数据取出
memset(result, 0, sizeof(result)); getData();
printf("------------------------\n");
//字符串拼接 connectStr();
return 0;
}
然后编译生成可执行文件,进行测试,监测服务器的内存、每秒请求数、总耗时等,根据测试表现进行分析,以确定技术性能的水平。
从测试结果来看,通过原生的Redis技术,数据在存储、取出、字符串拼接等操作上比较得心应手,相比于其他类似技术,有明显得性能提高,从而可以满足开发者对高性能、高效率的要求。
通过对原生Redis技术性能的评估,可以发现Redis的性能完全可以满足日常业务的要求,也可以