Map

KitDB Map 看起来就像一个 “Map” 的样子,由键值String和byte[]对组成。单个Map最多可以包含2的31次方-1个键值对 (20亿+)。

特性

操作

put(String key, String mkey, byte[] value)

将键值对mkey,value插入键为key的Map

get(String key, String mkey)

获取mkey对应的Value值

putTTL(String key, String mkey, byte[] value, int ttl)

设置键值对时,同时设置此Map的TTL(秒)

注意,此TTL不是Map内部键值对的ttl,而是Map的TTL

putMayTTL(String key, int ttl, String mkey, byte[] value)

放入键值对,如果TTL不存在,则设置TTL(秒)

put(String key, Map<String, byte[]> map)

同时放入多个键值对

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

同时放入多个键值对,如果TTL不存在,则设置TTL(秒)

get(String key, String… keys)

同时获取多个键值对

iterator(String key)

获取一个迭代器。用来遍历Map

  1. try (RIterator<RMap> iterator = map.iterator("test")) {
  2. while (iterator.hasNext()) {
  3. RMap.Entry entry = iterator.next();
  4. String key = entry.getKey();
  5. byte[] value = entry.getValue();
  6. }
  7. }

遍历器在使用完成后必须被关闭!!!注:迭代器实现了AutoCloseable 接口,可以利用try(iterator)自动关闭

需要注意的是:迭代器遍历的数据是不变的快照数据在迭代器遍历时,如果列表有变化,这些变化不会在迭代器遍历中体现

remove(String key, String… keys)

同时移除一个或多个键值对

isExist(String key)

判断键为key的Map是否存在

size(String key)

获取Map的size

getTtl(String key)

获取Map的ttl

ttl(String key, int ttl)

设置Map的ttl(秒)

delTtl(String key)

删除Map的ttl

delete(String key)

删除整个Map

deleteFast(String key)

快速删除整个Map

getKeyIterator()

获取一个遍历器,可以遍历所有的Map的键。

  1. try (KeyIterator keyIterator = map.getKeyIterator()) {
  2. while (keyIterator.hasNext()) {
  3. String key = keyIterator.next();
  4. }
  5. }

遍历器在使用完成后必须被关闭!!!注:迭代器实现了AutoCloseable 接口,可以利用try(iterator)自动关闭