Code Monkey home page Code Monkey logo

mlnkv's Introduction

MLNKV

License MIT

MLNKV是基于mmap实现的高性能、内存占用低、跨平台(支持iOS与Android)的Key-Value组件。

性能对比

测试机型:iPhone Xs 13.1.3 64G
img
img
img

内存占用对比:
img

用法

iOS 基本用法

pod 'MLNKV'


// init
MLNKV *mlnkv = [MLNKV defaultMLNKV];
// NSString *path = [MLNKVDEFAULTPATH stringByAppendingPathComponent:@".test"];
// MLNKV *mlnkv = [MLNKV mlnkvWithPath:path];

// set
    [mlnkv setKVString:@"value" forKey:@"key1"];
    [mlnkv setKVBool:YES forKey:@"key2"];
    [mlnkv setKVInt32:66666 forKey:@"key3"];
    [mlnkv setKVInt64:88888888 forKey:@"key4"];
    [mlnkv setKVFloat:66.666 forKey:@"key5"];
    [mlnkv setKVDouble:8888888.888 forKey:@"key6"];
    [mlnkv setKVObject:@{@"key":@"value"} forKey:@"key7"];
    [mlnkv setKVData:data forKey:@"key8"];
    
// get
    int value = [mlnkv getKVInt32ForKey:@"key3"];
    ...
    ...
    
// obj 自己实现序列化 or 使用NSKeyedArchiver
    [mlnkv setKVObject:obj forKey:@"key" archiveBlock:^NSData * _Nullable(id  _Nonnull obj) {
       // ...archive
    }];
    [mlnkv getKVObjectForKey:@"key" ofClass:clz unarchiveBlock:^id _Nullable(NSData * _Nonnull data) {
       // ...unarchive
    }];

Android 基本用法

maven {url "https://dl.bintray.com/sunzt8801/MLNKV"}
implementation "com.mlnkv:mlnkv:0.0.4"


// must call this in MainActivity
 MLNKV.initializeBasePath(this);

// init
MLNKV mlnkv = MLNKV.defaultMLNKV();
// String path = MLNKV.basPath() + "/.test";
// MLNKV mlnkv = new MLNKV(path);

// set 
    mlnkv.setBool("key1", true);
    mlnkv.setInt32("key2", 1);
    mlnkv.setInt64("key3", 88888888);
    mlnkv.setDouble("key4", 8888.888);
    mlnkv.setString("key5", "value");
    mlnkv.setBytes("key6", bytes);

// get 
    boolean value = mlnkv.getBool("key1");
    ...
    ...

// obj 使用java Serializable
    mlnkv.setObject("key", obj);
    mlnkv.getObject("key", clz);

许可证

MLNKV 使用 MIT 许可证,详情见 LICENSE 文件。

mlnkv's People

Contributors

hogc11 avatar sun8801 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mlnkv's Issues

api

mlnkv.setBool(true, "key1");
mlnkv.setInt32(1, "key2");
这些写法 obj在前,key在后,感觉怪怪的,不符合通用的api写法 key-value,key在前,value在后。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.