如何在嵌入式產品中應用KVStore for Redis資料庫,嵌入式索引值

來源:互聯網
上載者:User

如何在嵌入式產品中應用KVStore for Redis資料庫,嵌入式索引值

【 聲明:著作權,歡迎轉載,請勿用於商業用途。 聯絡信箱:armink.ztl@gmail.com】

1、背景

隨著互連網快速發展及大資料時代的到來,NoSQL資料庫以其強大的延展性、高效性、即時性等特點,而獲得十足的發展。索引值(Key-Value)儲存資料庫就是NoSQL的一種,大名鼎鼎的Redis就是一款用C開發的開源索引值對儲存資料庫。

與此同時又有越來越多的廠家加入了IoT產品、穿戴式裝置、智能家居的嵌入式產品開發行列中來,資料的持久化儲存需求也就變得越來越多,選型一款伸縮性好、佔用資源小、穩定性高,並可以應用於嵌入式產品的持久化存放庫就顯得越來越重要。

2、EasyFlash

EasyFlash是一款開源的輕量級嵌入式Flash儲存空間庫,主要為MCU提供便捷、通用的上層應用介面,它提供的主要功能有3種:Env(環境變數)、IAP(線上升級)以及Log(Flash儲存日誌)。這裡主要介紹可以讓Flash變為小型KVStore for Redis資料庫的Env功能。

3、增刪改查

為通過控制台(終端)來調用環境變數的常用介面,示範了環境變數 “temp” 從建立到儲存,再修改,最後刪除的過程。這些介面都支援被應用程式層直接調用。

EasyFlash環境變數功能的API位於https://github.com/armink/EasyFlash/blob/master/docs/zh/api.md#12-環境變數
主要使用方法如下:

/* 建立Key名為temp的環境變數,並賦初值"123" */flash_set_env("temp","123");/* 修改環境變數temp的值為"456" */flash_set_env("temp","456");/* 讀取環境變數temp的值 */char *temp = flash_get_env("temp");/* 刪除環境變數temp */flash_set_env("temp","");
4、使用情境

目前筆者已應用EasyFlash的產品,主要儲存以下內容

  • 1、產品上電的運行參數;
  • 2、運行記錄;
  • 3、使用者可編輯的參數;
  • 4、軟體斷言及硬體異常等系統崩潰日誌;
  • 5、線上升級時的Bootloader與APP之間的互動參數;
  • 6、更多儲存內容有待大家去挖掘……
5、Demo

目前已移植硬體平台有 stm32f10x與 stm32f4xx 系列的片內Flash,並支援裸機及RT-Thread嵌入式作業系統。歡迎大家 star and pull request,並提供更多平台的支援及意見。

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.