iOS进阶——微信开源存储框架MMKV(一)

iOS进阶——微信开源存储框架MMKV(一),第1张

MMKV是微信开源的数据持久化框架,现在已经支持Android/iOS/PC 平台。该框架是基于mmap映射内存的key—value组件,使用protobuf实现数据的序列化和反序列化,性能高,稳定性强。微信在2015就在微信应用上使用了该框架。实验证明MMKV是数据持久化的首选。

ProtoBuf是由google公司用于数据交换的序列结构化数据格式,具有跨平台、跨语言、可扩展特性,类型于常用的XML及JSON,但具有更小的传输体积、更高的编码、解码能力,特别适合于数据存储、网络数据传输等对存储体积、实时性要求高的领域。

优点:空间效率搞,时间效率要高,对于数据大小敏感,传输效率高的。

缺点:消息结构可读性不高,目前使用不广泛。

MMKV维护了一个<String,AnyObject>的dic,在写入数据时,会在dit和mmap映射区写入相同的数据,最后由内核同步到文件。因为dic和文件数据同步,所以读取时直接去dit中的值。MMKV数据持久化的步骤:mmap 内存映射 ->写数据 ->读数据 ->crc校验 ->aes加密。

在MMKV的源码中,是怎么样内存映射的呢?

(1)结构化数据,简单来说就是数据库。结合到典型场景中更容易理解,比如企业ERP、财务系统;医疗HIS数据库;政府行政审批;其他核心数据库等。这些应用需要哪些存储方案呢?基本包括高速存储应用需求、数据备份需求、数据共享需求以及数据容灾需求。

(2)非结构化数据库是指其字段长度可变,并且每个字段的记录又可以由可重复或不可重复的子字段构成的数据库,用它不仅可以处理结构化数据(如数字、符号等信息)而且更适合处理非结构化数据(全文文本、图像、声音、影视、超媒体等信息)。

面对海量非结构数据存储,杉岩海量对象存储MOS,提供完整解决方案,采用去中心化、分布式技术架构,支持百亿级文件及EB级容量存储,具备高效的数据检索、智能化标签和分析能力,轻松应对大数据和云时代的存储挑战,为企业发展提供智能决策。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9644733.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存