十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章给大家介绍如何在嵌入式产品中应用键值存储数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
创新互联是一家集网站建设,雅安企业网站建设,雅安品牌网站建设,网站定制,雅安网站建设报价,网络营销,网络优化,雅安网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
##1、背景
随着互联网快速发展及大数据时代的到来,NoSql数据库以其强大的可伸缩性、高效性、实时性等特点,而获得十足的发展。键值(Key-Value)存储数据库就是NOSQL的一种,大名鼎鼎的redis就是一款用C开发的开源键值对存储数据库。
与此同时又有越来越多的厂家加入了IoT产品、可穿戴设备、智能家居的嵌入式产品开发行列中来,数据的持久化存储需求也就变得越来越多,选型一款伸缩性好、占用资源小、稳定性高,并可以应用于嵌入式产品的持久化存储库就显得越来越重要。
##2、EasyFlash
EasyFlash是一款开源的轻量级嵌入式Flash存储器库,主要为MCU提供便捷、通用的上层应用接口,它提供的主要功能有3种:Env(环境变量)、IAP(在线升级)以及Log(Flash存储日志)。这里主要介绍可以让Flash变为小型键值存储数据库的Env功能。
##3、增删改查
下图为通过控制台(终端)来调用环境变量的常用接口,演示了环境变量 "temp" 从创建到保存,再修改,最后删除的过程。这些接口都支持被应用层直接调用。
EasyFlash环境变量功能的API位于https://github.com/armink/EasyFlash/blob/master/docs/zh/api.md#12-环境变量 主要使用方法如下:
/* 创建Key名为temp的环境变量,并赋初值"123" */ ef_set_env("temp","123"); /* 修改环境变量temp的值为"456" */ ef_set_env("temp","456"); /* 读取环境变量temp的值 */ char *temp = ef_get_env("temp"); /* 删除环境变量temp */ ef_set_env("temp","");
##4、使用场景
目前笔者已应用EasyFlash的产品,主要存储以下内容
1、产品上电的运行参数;
2、运行记录;
3、用户可编辑的参数;
4、软件断言及硬件异常等系统崩溃日志;
5、在线升级时的Bootloader与APP之间的交互参数;
6、更多存储内容有待大家去挖掘……
##5、Demo
目前已移植硬件平台有 stm32f10x与 stm32f4xx 系列的片内Flash,并支持裸机及RT-Thread嵌入式操作系统。
关于如何在嵌入式产品中应用键值存储数据库就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。