codecamp

深度定制

遇到问题?欢迎访问GitHub页面提交Issue https://github.com/SumiMakito/QuickKV ,同时也欢迎收藏项目

同步

技巧:你可以用这个方法来实现多实例,但不推荐使用。频繁地同步将会影响性能。

这个方法将会使数据从已持久化版本同步至当前数据库。

0.8.1版本后引入异步支持

同步模式

合并模式默认开启

  • 合并模式(true):将已持久化的部分覆盖至当前数据库,其他数据保持原样。

  • 非合并模式(false):先清除数据库内容,再将已持久化的数据载入至当前数据库。小心数据丢失

参考代码

qkvdb1.put("key", "value");
qkvdb1.persist();
qkvdb2.get("key");
//Output: null (Key doesn't exist)
qkvdb2.get("qkv2");
//Output: "another_value" (qkvdb1 doesn't have this key-value)
qkvdb2.sync(true); //Merge mode is true
qkvdb2.get("key").toString();
//Output: "value"
qkvdb2.get("qkv2");
//Output: "another_value"
qkvdb2.sync(false); //Merge mode is false
qkvdb2.get("qkv2");
//Output: null (because qkvdb doesn't have this key-value)
//Async (0.8.1+)
qkvdb2.sync(new KeyValueDatabase.Callback(){
    @Override
    public void onSuccess(){
        //Do something...
    }
    @Override
    public void onFailed(){
        //Do something...
    }
});
//Specify a mode for sync with callback
qkvdb2.sync(true, new KeyValueDatabase.Callback(){
    @Override
    public void onSuccess(){
        //Do something...
    }
    @Override
    public void onFailed(){
        //Do something...
    }
});

加密/解密

成功调用此方法后,数据库会自动持久化一次以应用加密/解密。

不需要在持久化前人工解密,一切都将自动进行。

  • 加密
//You can find the first method in the "Get database" section.
//Here is the second method
qkvdb.enableEncryption("mykey123"); //"" or null as a key is not allowed!
  • 解密
qkvdb.disableEncryption();

清除数据

这个方法将清除指定数据库中所有的数据

qkvdb.clear();
技巧:清空一个已持久化的数据库文件
qkvdb.clear(); //Clear it
qkvdb.persist(); //Then persist it

多数据库管理

释放数据库

这个方法将从内存中释放非默认数据库。

所有未保存的数据都将丢失

qucikKv.releaseDatabase("a_database");
qucikKv.releaseAllDatabases(); //One-click-destroy :P

这个数据库被打开了吗?

这个方法将返回一个布尔值。

qucikKv.isDatabaseOpened("dbAlias");
持久化数据
附:关于大容量键值数据库的说明
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }