MMKV——基于 mmap 的高性能通用 key-value 组件

MMKV——基于 mmap 的高性能通用 key-value 组件

Github

MMKV for Android

MMKV for Android 多进程设计与实现


  • 基于MMAP 内存映射的移动端通用keyvalue组件。
  • 底层的序列化和反序列化使用protobuf实现
  • 已经在ios上使用了3年,近期移植到Android平台
  • 通过mmap内存映射文件,提供一个内存块,App只管往里面写数据,其他不管,由操作系统负责将内存写回到文件中,不必担心crash导致的数据丢失。
  • 在写入的时候,考虑到有增量更新,是将增量kv对象序列化后,通过append到内存的末尾。

多进程实现细节

  • MMKV本质上是将文件mmap到内存中,将新增的kv统统append到内存的末尾。
  • 到达边界后,进行重整回写以腾出空间,空间还是不够的话,就 double 内存空间
  • 对于内存文件中可能存在的重复键值,MMKV 只选用最后写入的作为有效键值
  • MMKV 在 Android 多进程 key-value 存储组件上是不二之选

个人博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值