Key Value

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

特性

操作

set(String key, byte[] value)

设置指定 key 的值++注意!:此操作会清除TTL++

  1. RKv kv = db.getrKv();
  2. kv.set("hello", ("world").getBytes());

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

设置指定 key 时,设置生存时间(秒)

  1. RKv kv = db.getrKv();
  2. kv.set("hello", ("world").getBytes(), 3);

set(Map<String, byte[]> map)

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

set(Map<String, byte[]> map, int ttl)

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

get(String key)

获取Key的值

  1. RKv kv = db.getrKv();
  2. 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不会过期