智能家居测试应用数据库_Polardb数据库模拟控制智能家居测试案例

本文通过模拟控制智能家居开关的场景,测试了阿里云的Polardb数据库性能。首先介绍了环境搭建,包括购买与配置PolarDB,设置ECS服务器,安装nginx和php。接着详细讲述了开发过程,使用C语言API接口和PHP脚本读取并展示设备状态。最后,通过客户端与服务器端的socket通信实现设备状态更新,并进行了测试。总结认为,Polardb与MySQL兼容,操作简便,建议提供RESTful API以方便开发。
摘要由CSDN通过智能技术生成

Polardb是阿里云研发的一种关系型数据库,与mysql完全兼容,而性能又是其6倍,具有高吞吐,低延迟等特性;本测试通过模拟控制智能家居开关的终端场景,来体验polardb的性能;

本测试通过模拟控制智能家居开关的终端场景,来体验polardb的性能;

1、环境搭建

1.1polardb配置

首先需要购买polardb,按照处理器和内存的性能不同,价格也不同,最低的配置为2核4G的polar.mysql.x2.medium规格,包月价格560RMB;

购买以后,就可以通过连接https://polardb.console.aliyun.com/,进入polardb控制台进行相关的配置;选择一个地域节点[如华东1],创建一个实例,然后选择一个集群列表,创建一个集群。创建好后,可以看到数据库类型为POLARDB(MySQL5.6),付费类型和到期时间分别为包月和一个月的长度;在创建时配置好初始账号和密码就可以使用了;在集群页面,鼠标点击右侧的管理连接,进入集群信息页面,可以看到公网联接的地址,是用户账号名开始的连接,后面是mysql常用的端口号3306,记录下这个后面连接用的到;

集群连接地址(公网):mypolardb.mysql.polardb.rds.aliyuncs.com:3306,这里我的账号配置为mypolardb,所以这里以mypolardb开头;

在上面的白名单列表中,点击后面的笔状修改按钮,将我们用来连接数据库的ecs服务器地址添加到里面;这里我的服务器地址为47.94.219.162.

1.2ECS服务器配置:

由于需要在web页面上进行结果测试,先安装nginx服务器,使用以下命令行进行安装:

sudoapt-getinstallnginx

安装好后,在浏览器中输入ECS的地址[这里测试的是:47.94.219.162],可以看到nginx的欢迎界面,表示安装成功;

由于后面需要用php脚本程序开发,所以还需要安装php,在console窗口输入以下命令安装:

sudoapt-getinstallphp*

安装好后,输入下面的命令修改nginx的配置:

sudovi/etc/nginx/sites-available/default

将文件中的下面四段打开:

location~\.php${

includesnippets/fastcgi-php.conf;

fastcgi_passunix:/run/php/php7.0-fpm.sock;

}

保存退出,然后重启nginx:

servicenginxrestart

进入/var/www/html目录,创建一个php文件,测试是否php安装成功:

viphpinfo.php

《?phpphpinfo();》

在浏览器访问这个文件,如果可以看到相关的php信息,则表明php安装成功;

进入域名控制台,选择要解析的域名,点击解析连接,添加一条A记录,主机记录起一个容易记住的名字,比如:polardb,记录值选择ECS的ip地址,比如:47.94.219.162,然后创建完成后,等待5分钟,在浏览器访问一下新的域名,比如polardb.xunyun17.xyz,如果同样能看到nginx的欢迎界面,表示域名解析成功;

由于本智能家居场景使用mysql开发体验,所以还需要在ubuntu里,安装mysql,运行下面的命令进行安装:

sudoaptinstallmysql-client

安装完mysql后,建立一个shell脚本,测试是否可以连接到polardb上:

vip.sh

mysql-hmypolardb.mysql.polardb.rds.aliyuncs.com--user=mypolardb--password=mypolardb

。/p.sh

如果运行完脚本后,可以看到mysql的提示信息,和mysql大于号提示符,表示可以连接成功;

2、开发

首先搭建创建一个数据库和一张表用来保存客厅和设备当前信息:

。/p.sh

createdatabaseketing;

useketing;

CREATETABLEstatus(devnameVARCHAR(20),valueint(4),changetimeDATETIME);

insertintostatus(devname,value,changetime)values

(‘TV0001’,0,NOW()),

(‘LAMP01’,1,NOW()),

(‘CURN01’,1,NOW());

然后通过mysql的c语言api接口,编写一段程序,来读取status设备表中的设备状态:

querylampdevice

sprintf(str_cmd,“selectvaluefromstatuswheredevname=‘LAMP01’”);

//printf(“\n%s\n.”,str_cmd);

no_res=0;

if(mysql_query(conn,str_cmd))

{

printf(“《《《《《《《\n”);

exit(1);

}

res=mysql_use_result(conn);

if(no_res==0){

while((row=mysql_fetch_row(res))!=NULL)

{

//printf(“%s\n”,row[0]);

if(selno==17)printf(“%s”,row[0]);

elseprintf(“%s\t%s\t%s”,row[0],row[1],row[2]);

}

}

mysql_free_result(res);

sprintf(str_cmd,“selectvaluefromstatuswheredevname=‘CURN01’”);

//printf(“\n%s\n.”,str_cmd);

no_res=0;

下一步,就是用php脚本调用这段代码查询设备状态,并且显示在网页上:查询结果在

使用以下php代码实现:

if(!empty($_REQUEST[‘arguments’])){

exec(‘。/mysqlv’.$_REQUEST[‘arguments’]。‘LAMP031’,$result);

//print_r($result);<

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值