使用 TiKV 数据库进行范围查询

问题描述

如何使用 TiKV 和 java-client 进行范围查询

假设我有这个模型:

public class Hub implements Serializable {
    private String name;
    private List<Schedule> schedules;
}

import java.time.LocalTime;

public class Schedule implements Serializable {
    private String day;
    private LocalTime opens; 
    private LocalTime closes;
}

我怎样才能做一个满足这个要求的查询

new Schedule().builder()
    .day("Monday")
    .opens(LocalTime.parse("09:00")
    .close(LocalTime.parse("17:00").build();
  1. 如何将 Hub 模型存储到 TiKV 中
  2. 此外,在此示例中,您如何对 schedules 执行范围查询

解决方法

你可以使用client-java-client,见https://github.com/tikv/client-java

  1. 如何将 Hub 模型存储到 TiKV 中

如果不使用 TiDB 直接使用 TiKV,可以将 Hub 编码成 ByteString,然后将 ByteString 存储到 TiKV 中。

https://github.com/tikv/client-java/blob/v3.0.0/src/main/java/org/tikv/raw/RawKVClient.java#L82

  1. 此外,您如何对本示例中的时间表进行范围查询?

您可以使用 scan API 进行范围查询

https://github.com/tikv/client-java/blob/v3.0.0/src/main/java/org/tikv/raw/RawKVClient.java#L152

如果您有任何问题或要求,请在 https://github.com/tikv/client-java/issues 上提交问题。

更新于 https://github.com/tikv/client-java/issues/105

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...