原生Redis技术性能评测(原生redis评测)

2023-05-09 15:57:03 技术 性能 评测

随着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的性能完全可以满足日常业务的要求,也可以

相关文章