KVClient#

包路径:

org.yuanrong.datasystem.kv

KV缓存客户端。

构造方法#

public KVClient()#

连接到 Worker 并创建一个 KV 客户端实例。

返回:

KV缓存客户端实例。

public KVClient(ConnectOptions connectOptions)#

创建一个KV客户端实例并连接服务端。

参数:
  • connectOptions - 用于建立连接的参数,详见 ConnectOptions 章节。

返回:

KV缓存客户端实例。

公共方法#

public void set(String key, ByteBuffer value)#

调用 Worker 客户端设置键的值。

参数:
  • key - 键。key的合法字符为:英文字母(a-zA-Z)、数字以及 -_!@#%^*()+=:;,最大长度为255字节。

  • value - 键对应的值。

异常:

DataSystemException - 如果客户端已关闭(kvClientPtr == 0),将抛出异常,消息为 “Client closed”。

public void set(String key, ByteBuffer value, SetParam param)#

调用 Worker 客户端设置键的值。

参数:
  • key - 键。key的合法字符为:英文字母(a-zA-Z)、数字以及 -_!@#%^*()+=:;,最大长度为255字节。

  • value - 键对应的值。

  • param - 设置参数,详见 SetParam 章节。

异常:

DataSystemException - 如果客户端已关闭(kvClientPtr == 0),将抛出异常,消息为 “Client closed”。

public ByteBuffer get(String key)#

调用 Worker 客户端获取键的值。

参数:
  • key - 键。key的合法字符为:英文字母(a-zA-Z)、数字以及 -_!@#%^*()+=:;,最大长度为255字节。

返回:

键对应的值。

异常:

DataSystemException - 如果客户端已关闭(kvClientPtr == 0),将抛出异常,消息为 “Client closed”。

public ByteBuffer get(String key, int timeoutMs)#

调用 Worker 客户端获取键的值。

参数:
  • key - 键。key的合法字符为:英文字母(a-zA-Z)、数字以及 -_!@#%^*()+=:;,最大长度为255字节。

  • timeoutMs - 如果对象未就绪时等待结果返回的超时时间(毫秒)。需要为正整数,0表示不等待。

返回:

键对应的值。

异常:

DataSystemException - 如果客户端已关闭(kvClientPtr == 0),将抛出异常,消息为 “Client closed”。

public List<ByteBuffer> get(List<String> keys)#

调用 Worker 客户端获取所有给定键的值。

参数:
  • keys - 键的向量。key的合法字符为:英文字母(a-zA-Z)、数字以及 -_!@#%^*()+=:;,单个key最大长度为255字节。传入的key的个数不能超过1万,推荐单次获取key个数小于等于64个。

返回:

值的列表。若有部分数据获取不成功,则对应位置的值为null。

异常:

DataSystemException - 如果客户端已关闭(kvClientPtr == 0),将抛出异常,消息为 “Client closed”。

public List<ByteBuffer> get(List<String> keys, int timeoutMs)#

调用 Worker 客户端获取所有给定键的值。

参数:
  • keys - 键的向量。key的合法字符为:英文字母(a-zA-Z)、数字以及 -_!@#%^*()+=:;,单个key最大长度为255字节。传入的key的个数不能超过1万,推荐单次获取key个数小于等于64个。

  • timeoutMs - 如果对象未就绪时等待结果返回的超时时间(毫秒)。需要为正整数,0表示不等待。

返回:

值的列表。若有部分数据获取不成功,则对应位置的值为null。

异常:

DataSystemException - 如果客户端已关闭(kvClientPtr == 0),将抛出异常,消息为 “Client closed”。

public void del(String key)#

调用 Worker 客户端删除一个键。

参数:
  • key - 键。key的合法字符为:英文字母(a-zA-Z)、数字以及 -_!@#%^*()+=:;,最大长度为255字节。

异常:

DataSystemException - 如果客户端已关闭(kvClientPtr == 0),将抛出异常,消息为 “Client closed”。

public List<String> del(List<String> keys)#

调用 Worker 客户端删除所有给定的键。

参数:
  • keys - 键的向量。key的合法字符为:英文字母(a-zA-Z)、数字以及 -_!@#%^*()+=:;,单个key最大长度为255字节。传入的key的个数不能超过1万,推荐单次获取key个数小于等于64个。

返回:

删除失败的键列表。

异常:

DataSystemException - 如果客户端已关闭(kvClientPtr == 0),将抛出异常,消息为 “Client closed”。

public String generateKey()#

为 SET 操作生成一个唯一的键。

返回:

唯一的键,如果键生成失败,则返回空字符串。

异常:

DataSystemException - 如果客户端已关闭(kvClientPtr == 0),将抛出异常,消息为 “Client closed”。

public void close()#

删除 KV 客户端,断开与数据系统 Worker 之间的连接,释放客户端持有的资源。

调用此方法后,客户端将不可再用。多次调用 close() 是安全的。

public void finalize()#

finalize() 方法用于释放 JNI 端的对象客户端指针,由于java垃圾回收的不确定性,该操作不能保证会被执行。

强烈建议使用 close() 方法显式释放资源,而不是依赖 finalize()。