您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何在嵌入式產(chǎn)品中應(yīng)用鍵值存儲數(shù)據(jù)庫,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
##1、背景
隨著互聯(lián)網(wǎng)快速發(fā)展及大數(shù)據(jù)時代的到來,NoSQL數(shù)據(jù)庫以其強大的可伸縮性、高效性、實時性等特點,而獲得十足的發(fā)展。鍵值(Key-Value)存儲數(shù)據(jù)庫就是NoSQL的一種,大名鼎鼎的Redis就是一款用C開發(fā)的開源鍵值對存儲數(shù)據(jù)庫。
與此同時又有越來越多的廠家加入了IoT產(chǎn)品、可穿戴設(shè)備、智能家居的嵌入式產(chǎn)品開發(fā)行列中來,數(shù)據(jù)的持久化存儲需求也就變得越來越多,選型一款伸縮性好、占用資源小、穩(wěn)定性高,并可以應(yīng)用于嵌入式產(chǎn)品的持久化存儲庫就顯得越來越重要。
##2、EasyFlash
EasyFlash是一款開源的輕量級嵌入式Flash存儲器庫,主要為MCU提供便捷、通用的上層應(yīng)用接口,它提供的主要功能有3種:Env(環(huán)境變量)、IAP(在線升級)以及Log(Flash存儲日志)。這里主要介紹可以讓Flash變?yōu)樾⌒玩I值存儲數(shù)據(jù)庫的Env功能。
##3、增刪改查
下圖為通過控制臺(終端)來調(diào)用環(huán)境變量的常用接口,演示了環(huán)境變量 "temp" 從創(chuàng)建到保存,再修改,最后刪除的過程。這些接口都支持被應(yīng)用層直接調(diào)用。
EasyFlash環(huán)境變量功能的API位于https://github.com/armink/EasyFlash/blob/master/docs/zh/api.md#12-環(huán)境變量 主要使用方法如下:
/* 創(chuàng)建Key名為temp的環(huán)境變量,并賦初值"123" */ ef_set_env("temp","123"); /* 修改環(huán)境變量temp的值為"456" */ ef_set_env("temp","456"); /* 讀取環(huán)境變量temp的值 */ char *temp = ef_get_env("temp"); /* 刪除環(huán)境變量temp */ ef_set_env("temp","");
##4、使用場景
目前筆者已應(yīng)用EasyFlash的產(chǎn)品,主要存儲以下內(nèi)容
1、產(chǎn)品上電的運行參數(shù);
2、運行記錄;
3、用戶可編輯的參數(shù);
4、軟件斷言及硬件異常等系統(tǒng)崩潰日志;
5、在線升級時的Bootloader與APP之間的交互參數(shù);
6、更多存儲內(nèi)容有待大家去挖掘……
##5、Demo
目前已移植硬件平臺有 stm32f10x與 stm32f4xx 系列的片內(nèi)Flash,并支持裸機及RT-Thread嵌入式操作系統(tǒng)。
關(guān)于如何在嵌入式產(chǎn)品中應(yīng)用鍵值存儲數(shù)據(jù)庫就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。