怎样在嵌入式产品中应用键值存储数据库
2016-01-24 09:47
211 查看
【 声明:版权全部。欢迎转载。请勿用于商业用途。 联系信箱:armink.ztl@gmail.com】
与此同一时候又有越来越多的厂家增加了IoT产品、可穿戴设备、智能家居的嵌入式产品开发行列中来,数据的持久化存储需求也就变得越来越多,选型一款伸缩性好、占用资源小、稳定性高。并能够应用于嵌入式产品的持久化存储库就显得越来越重要。
这些接口都支持被应用层直接调用。
EasyFlash环境变量功能的API位于https://github.com/armink/EasyFlash/blob/master/docs/zh/api.md#12-环境变量
主要用法例如以下:
1、产品上电的执行參数;
2、执行记录;
3、用户可编辑的參数;
4、软件断言及硬件异常等系统崩溃日志;
5、在线升级时的Bootloader与APP之间的交互參数;
6、很多其它存储内容有待大家去挖掘……
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嵌入式操作系统。欢迎大家 star and pull request。并提供很多其它平台的支持及意见。相关文章推荐
- SQL之模糊查询
- 安装完成的Oracle 给Scott账户解锁方法
- Oracle JDBC URL和Driver
- mysql外键约束
- postgresql安装简单记录
- SQLite的JDBC的编写
- VS2013与MySql建立连接;您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库 EF6使用Mysql的技巧
- 清空mysql表后,自增id复原
- 用redis实现有优先级的"celery"
- mysql笔记03 查询性能优化
- 编写脚本实现MySQL主从复制状态监控
- mysql 分表真正的意义在哪里?
- mysql中如何提高大表之间复制效率
- MySQL优化技巧之二(sql优化总结)
- mysql字符集和校对规则(Mysql校对集)
- Oracle B-tree、位图、全文索引三大索引性能比较及优缺点汇总
- MySQL 主键与索引的联系与区别分析
- MySQL的表分区
- mysql-5.7.10-winx64 安装时遇到的问题
- MySQL存储过程中的3种循环