# BambooDB **Repository Path**: wangscript/Bamboo ## Basic Information - **Project Name**: BambooDB - **Description**: 跨进程数据库持久化系统,独创竹节数据结构,让读写更快速。解决Android中的原生数据库经常发生各种意外问题 - **Primary Language**: Java - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2018-01-04 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Bamboo ## 跨进程数据库持久化系统,独创竹节数据结构,让读写更快速。解决Android中的原生数据库经常发生各种意外问题 ### github地址:[github](https://github.com/huacangliang/Bamboo) ### /** *
竹子数据持久化系统,创意来源:因数据结构像竹子的节一样而得名
*该系统应该配合数据缓存使用,因为直接操作io,会降低系统性能
*理论上该数据支持物理最大化存储,数据结构应当保持不变,不变的前提是初始化数据的长度要尽量的合理,否则导致后面的长度变长而 * 导致性能下降
*该系统容量扩展会根据内容增加而增加,但是大小基本上跟数据大小一致
*使用方式: * 先初始化 * * @see Bamboo.init() * 再获取服务 * @see Bamboo.getBambooServer().remove(key); * @see Bamboo.getBambooServer().read(key); * @see Bamboo.getBambooServer().write(key, value); * @see Bamboo.getBambooServer().cut(key) * @see Bamboo.getBambooServer().clearRef() *
* 系统优缺点: * 优点,支持多进程,对增量写友好,不耗费多余资源,对文件操作快速(因为基于随机读写) * 缺点:扩展实体长度困难,收缩缓慢 *
*/ ``` public interface IBambooServer { /** * 保存数据,会覆盖前面的数据 * * @param key * @param data * @return * @throws Exception */ boolean write(String key, String data) throws Exception; /** * 读取数据,读取失败或没有值返回空字符“” * * @param key * @return * @throws Exception */ String read(String key) throws Exception; /** * 删除数据,标记删除 * * @param key * @return * @throws Exception */ boolean cut(String key) throws Exception; /** * 移除数据实体,该函数很消耗io和计算资源,若无必要请不要使用 * * @param key * @return * @throws Exception */ boolean remove(String key) throws Exception; /** * 清除垃圾,该函数会删除被标记为删除的数据实体,相当耗费资源,请使用线程运行 * * @return * @throws Exception */ boolean clearRef() throws Exception; /** * 返回因各种意外导致的关闭状态 * * @return */ boolean isClose(); } ```