LevelDB 封装和功能拓展
上期分享了LevelDB Java&Go实践内容,按照惯例,我自然不会傻傻地使用原生 API,肯定要进行一番封装。经过一段时间的尝试和测试,功能终于稳定下来。
这次我不仅封装了 LevelDB API,还进行了一定程度的拓展,分别拓展了存储类型 int 类型和原有 value 上追加的功能,使得 LevelDB 更像 Redis。
封装
本次依旧采取之前 base 对象的思路,将每一个 LevelDB 封装到一个自定义的类里面,通过类方法的封装来个性化实现各个功能。封装完成之后,至少收获了两个好处:1. 再也不用将 String 字符串和 byte 数组转来转去了;2. 统一了语法之后,代码看起来整洁多了。
下面是我对原生 API 的封装:
复制代码
功能拓展
首先我拓展了 value 值的范围,兼容了 value 值是 int 类型的,这里想不到太好的办法,只能在 int 和 String 之间转来转去。以后我根据com.funtester.db.redis.RedisBase
类中的功能,对照拓展了:自增、自减、增减数值、追加和删除片段。同样的也是在 String 和 byte 数组转来转去。
增减方法我加了锁,为了在性能测试中避免线程不安全。此处没有确定,等后面实践时候再修改。
复制代码
本期就分享 Java 的实践和拓展,下期再分享 Go 语言实践和 LevelDB 在测试工作中应用的几种场景,欢迎大家持续关注 FunTester。
欢迎关注 FunTester,Have Fun ~ Tester !
版权声明: 本文为 InfoQ 作者【FunTester】的原创文章。
原文链接:【http://xie.infoq.cn/article/b0fdbfb7e0ba1c48a9777f42f】。文章转载请联系作者。
评论