FireFlyKV
簡介
FireFlyKV 是(shì)基于(yú) mmap 内存映射的(de) key-value 組件,底層序列化/反序列化采用緊湊型數據組織方式,優化了(le/liǎo)數據存儲結構,性能高,穩定性強,适用于(yú) Android / macOS 平台。
工作原理
下面從以(yǐ)下幾個(gè)方面對FireflyKV的(de)工作原理進行闡述:
數據組織
爲(wéi / wèi)了(le/liǎo)避免數據冗餘,我們采用的(de)是(shì)緊湊型的(de)存儲方式,去除了(le/liǎo)冗餘的(de)字符,減小文件占用空間,大(dà)大(dà)提高了(le/liǎo)執行效率。
内存優化
在(zài)内存優化方面,使用hash索引+偏移量的(de)方案替代了(le/liǎo)内存緩存方案。
讀取方式
在(zài)讀取數據時(shí),我們采用了(le/liǎo)效率最高的(de)倒序讀取法。
文件整理
在(zài)數據的(de)增删改查過程中,我們會在(zài)特定時(shí)機觸發重整理的(de)工作,删除失效數據,從而(ér)達到(dào)節省磁盤空間,增加文件打開和(hé / huò)讀寫的(de)效率。
數據加密
我們爲(wéi / wèi)使用者提供了(le/liǎo)chacha20的(de)加密方式,同時(shí),我們也(yě)提供對自定義加密的(de)支持。
進程間的(de)數據并發安全問題
我們采用了(le/liǎo)文件鎖的(de)方式來(lái)解決Android端多進程數據訪問問題。