What is the process of getting and putting data in tikv-client-java?

Note:
This topic has been translated from a Chinese forum by GPT and might contain errors.

Original topic: tikv-client-java get和put数据时的流程是什么样的,

| username: tikv-lu

What is the process for put and get operations when using tikv-client-java 3.1.0 to interact with a TiKV cluster, and how can batchGet be optimized for better performance? Are there any relevant documents available for reference?

| username: ljluestc | Original post link

// Configure TiKV session
TiConfiguration conf = TiConfiguration.createDefault();
TiSession session = TiSession.create(conf);

try {
    // Put data
    byte[] keyBytes = "myKey".getBytes();
    byte[] valueBytes = "myValue".getBytes();
    Key key = TypedKey.from(keyBytes);
    session.getKVClient().put(key, valueBytes);

    // Get data
    byte[] retrievedValue = session.getKVClient().get(key);

    if (retrievedValue != null) {
        System.out.println("Retrieved value: " + new String(retrievedValue));
    } else {
        System.out.println("Key not found.");
    }
} catch (TiClientInternalException e) {
    e.printStackTrace();
} finally {
    session.close();
}
| username: redgame | Original post link

This response is a bit lengthy, so I’ll explain the middle part as I understand it.
For the batchGet operation, TiKV provides a way to read multiple keys in bulk to improve read performance. In the batchGet operation, the client can send multiple keys to TiKV at once, and then TiKV reads the corresponding data from the replicas of various Regions in parallel and returns the results to the client.