- Key Value
- 特性
- 操作
- set(String key, byte[] value)
- set(String key, byte[] value, int ttl)
- set(Map<String, byte[]> map)
- set(Map<String, byte[]> 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++
RKv kv = db.getrKv();
kv.set("hello", ("world").getBytes());
set(String key, byte[] value, int ttl)
设置指定 key 时,设置生存时间(秒)
RKv kv = db.getrKv();
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的值
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不会过期