• Key Value
  • 特性
  • 操作
  • set(String key, byte[] value)
  • set(String key, byte[] value, int ttl)
  • set(Map map)
  • set(Map map, int ttl)
  • get(String key)
  • get(String… keys)
  • getWithoutTTL (key)
  • incr(String key, int step)
  • incr(String key, int step, int ttl)
  • del(String key)
  • delPrefix(String key_)
  • keys(String key_, int start, int limit)
  • getTtl(String key)
  • delTtl(String key)

    Key Value

    key value是KitDB最简单的数据结构,由字符串Key和byte数组Value组成

    特性

    操作

    set(String key, byte[] value)

    设置指定 key 的值++注意!:此操作会清除TTL++
    1. RKv kv = db.getrKv();kv.set("hello", ("world").getBytes());

    set(String key, byte[] value, int ttl)

    设置指定 key 时,设置生存时间(秒)
    1. RKv kv = db.getrKv();kv.set("hello", ("world").getBytes(), 3);

    set(Map map)

    同时插入多个K-V++注意!:此操作会清除TTL++

    set(Map map, int ttl)

    同时插入多个K-V,并为每个KV设置生存时间 (秒)

    get(String key)

    获取Key的值
    1. RKv kv = db.getrKv();byte[] bytes = kv.get("hello");

    get(String… keys)

    批量查询多个 key数组

    此方法会大幅度提高查询效率

    getWithoutTTL (key)

    不精确的校验TTL(生存时间)。这个方法不会严格的校验TTL,在数据被垃圾回收器清理前,过期的KV仍然可以被这个方法查出。 通常情况下,默认的垃圾回收器将在1S内清除过期数据,如果未设置TTL或对TTL不敏感,使用此方法会大幅的性能提升

    incr(String key, int step)

    将 key 中储存的数字值增step如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 incr 操作。如果value已存在,byte[] 必须为long值转化而成,也就是byte[] 长度为8。否则,将会抛出错误。BytesUtil工具类提供了long和byte[]互相转化的方法

    incr(String key, int step, int ttl)

    将 key 中储存的数字值增step,并设置过期时间

    del(String key)

    删除

    delPrefix(String key_)

    删除拥有相同前缀的key

    keys(String key_, int start, int limit)

    返回拥有相同前缀的key,start:起始位置,limit:每次返回的最多数量,

    getTtl(String key)

    查询key的生存时间

    delTtl(String key)

    删除key的生存时间,如果删除时key还存在,key不会过期