<commit_before>---
layout: global
title: Key Value Store Client API
nickname: Key Value Store API
group: Features
priority: 4
---

* Table of Contents
{:toc}

# 综述
Tachyon除了提供[Filesystem API](File-System-API.html) 让应用程序来读，写和管理文件，还在文件系统
之上提供了键值（key-value）存储。
就像Tachyon文件系统中的文件一样，键值存储的语义是只写一次。

* 用户可以创建一个键值存储并且把键值对放入其中。键值对放入存储后是不可变的。 
* 键值对放入键值存储后，用户可以打开并使用该键值存储。？

单个键值存储可以用TachyonURI来表示路径，比如`tachyon://path/my-kvstore`.
取决于用户指定的总容量和数据块大小，单个键值存储可能有一个以上的分区，分区是Tachyon内部来管理，对用户透明。

# 通过Java应用程序来访问键值存储

### 获取一个键值存储的客户端

要想用Java代码获取一个Tachyon键值存储客户端实例，可以使用:

```java
KeyValueSystem kvs = KeyValueSystem.Factory().get();
```<commit_msg>Add key value store API Chinese docs<commit_after>---
layout: global
title: Key Value Store Client API
nickname: Key Value Store API
group: Features
priority: 4
---

* Table of Contents
{:toc}

# 综述
Tachyon除了提供[Filesystem API](File-System-API.html) 让应用程序来读，写和管理文件，还在文件系统
之上提供了键值（key-value）存储。
就像Tachyon文件系统中的文件一样，键值存储的语义是只写一次。

* 用户可以创建一个键值存储并且把键值对放入其中。键值对放入存储后是不可变的。 
* 键值对放入键值存储后，用户可以打开并使用该键值存储。？

单个键值存储可以用TachyonURI来表示路径，比如`tachyon://path/my-kvstore`.
取决于用户指定的总容量和数据块大小，单个键值存储可能有一个以上的分区，分区是Tachyon内部来管理，对用户透明。

# 通过Java应用程序来访问键值存储

### 获取一个键值存储的客户端

要想用Java代码获取一个Tachyon键值存储客户端实例，可以使用:

```java
KeyValueSystem kvs = KeyValueSystem.Factory().get();
```

## 创建一个新的键值存储

可以通过调用`KeyValueSystem#createStore(TachyonURI)`来创建一个新的键值存储。将返回一个writer用于后续
加入键值对。To create a new key-value store, use , which returns a writer to add key-value pairs. 可以参照下面的例子:

```java
KeyValueStoreWriter writer = kvs.createStore(new TachyonURI("tachyon://path/my-kvstore"));
// Insert key-value pair ("100", "foo")
writer.put("100", "foo");
// Insert key-value pair ("200", "bar")
writer.put("200", "bar");
// Close and complete the store
writer.close();
```

{'fraction_non_alphanumeric': 0.12861189801699716, 'fraction_numerical': 0.00793201133144476, 'mean_word_length': 6.814159292035399, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4487359', 'n_tokens_mistral': 1005, 'n_tokens_neox': 1063, 'n_words': 127}