本文介绍如何在 Redis 企业版中使用 Java 语言的 OpenAPI-SDK。
需要使用 Java JDK 1.7 或以上版本。更多详情,请参见 Java Downloads。
Redis Java SDK 源码地址,请参见 Redis Java SDK。
您需要通过配置 Maven 项目依赖来安装 Redis Java SDK。
新建一个 Maven 项目,并在项目目录下的 pom.xml
中添加如下设置来引入服务依赖。引入依赖后,Maven 项目管理工具会自动下载相关 JAR 包。
说明
如果您的 Java JDK 版本为 JDK 9 或以上版本,还需要额外添加 javax.annotation-api
依赖,请在 pom.xml
中添加如下内容。
<dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.3.2</version> </dependency>
<dependencies> <dependency> <groupId>com.volcengine</groupId> <artifactId>volcengine-java-sdk-Redis</artifactId> <version>0.1.90</version> </dependency> </dependencies>
使用 Java SDK 调用 Redis 接口时,默认无超时时间设置。
您可以在初始化客户端时,通过 setConnectTimeout(${超时时间})
(默认单位:毫秒) 来指定客户端的请求超时时间,若未在该时间内完成,请求即会终止并报超时错误。
例如,您可以通过如下代码将客户端的请求超时时间设置为 5000 毫秒。
public static ApiClient apiClient = new ApiClient() .setCredentials(Credentials.getCredentials(ak,sk)) .setRegion(region).setConnectTimeout(5000);
使用 Redis Java SDK 前需确保已获取如下信息:
账号的 Access Key ID(简称 AK)和 Secret Access Key(简称 SK)信息。获取 AKSK 信息的方法,请参见查看 AKSK 信息。
Region 信息。Redis 支持的 Region,请参见服务地址。
说明
关于下述 SDK 代码中所使用参数的定义、取值范围等信息,请参见 CreateEnterpriseDBInstance。
创建 1 个 Redis 企业版实例,配置如下:
acl-cq014ioqkm9zt5j****
和 acl-cq015pp15v8buvl****
两个白名单。department:game
和 owner:Alice
两个标签。import com.volcengine.ApiClient; import com.volcengine.ApiException; import com.volcengine.sign.Credentials; import com.volcengine.redis.RedisApi; import com.volcengine.redis.model.*; import java.util.Arrays; public class TestRedis { public static void main(String[] args) throws Exception { // 设置 AKSK 验证信息及 Region // 注意示例代码安全,代码泄漏会导致 AKSK 泄漏,有极大的安全风险。 String ak = "Your AK"; String sk = "Your SK"; String region = "Your Region"; ApiClient apiClient = new ApiClient() .setCredentials(Credentials.getCredentials(ak, sk)) .setRegion(region); RedisApi redisApi = new RedisApi(apiClient); //创建一个接口入参 CreateEnterpriseDBInstanceRequest request = new CreateEnterpriseDBInstanceRequest(); // 设置需要创建实例的配置信息 // 如下代码示例中仅使用了 CreateEnterpriseDBInstance 接口中的必填参数和部分选填参数 request.setRegionId("cn-beijing"); request.setMultiAZ("enabled"); List<ConfigureNodeForCreateEnterpriseDBInstanceInput> configureNodes = new ArrayList<>(); ConfigureNodeForCreateEnterpriseDBInstanceInput primaryZone = new ConfigureNodeForCreateEnterpriseDBInstanceInput(); primaryZone.setAZ("cn-beijing-a"); configureNodes.add(primaryZone); ConfigureNodeForCreateEnterpriseDBInstanceInput secondaryZone = new ConfigureNodeForCreateEnterpriseDBInstanceInput(); secondaryZone.setAZ("cn-beijing-b"); configureNodes.add(secondaryZone); request.setConfigureNodes(configureNodes); request.setDataLayout("Hybrid"); request.setShardNumber(2); request.setRamPerShard(8192); request.setFlashPerShard(10240); request.setChargeType("PrePaid"); request.setPurchaseMonths(2); request.setAutoRenew(false); request.setPassword("Pwd@12****"); request.setVpcId("vpc-rs5811nceqyov0x58x4****"); request.setSubnetId("subnet-1g15j13jtzgu88ibuxwqp****"); List<String> modules = new ArrayList<>(); modules.add("RedisJSON"); modules.add("RedisBloom"); modules.add("RedisGears"); request.setModules(modules); List<String> allowListIds = new ArrayList<>(); allowListIds.add("acl-cq014ioqkm9zt5j****"); allowListIds.add("acl-cq015pp15v8buvl****"); request.setAllowListIds(allowListIds); List<TagForCreateEnterpriseDBInstanceInput> tags = new ArrayList<>(); TagForCreateEnterpriseDBInstanceInput departmentTag = new TagForCreateEnterpriseDBInstanceInput(); departmentTag.setKey("department"); departmentTag.setValue("game"); tags.add(departmentTag); TagForCreateEnterpriseDBInstanceInput ownerTag = new TagForCreateEnterpriseDBInstanceInput(); ownerTag.setKey("owner"); ownerTag.setValue("Alice"); tags.add(ownerTag); request.setTags(tags); //调用接口创建一个 Redis 实例 try { // 复制代码运行示例,请自行打印 API 返回值。 CreateEnterpriseDBInstanceResponse response = redisApi.createEnterpriseDBInstance(request); System.out.println(response); } catch (ApiException e) { // 复制代码运行示例,请自行打印 API 错误信息。 System.out.println(e.getResponseBody()); } } }
说明
关于下述 SDK 请求中所使用参数的定义、取值范围等信息,请参见 DescribeEnterpriseDBInstanceDetail。
import com.volcengine.ApiClient; import com.volcengine.ApiException; import com.volcengine.sign.Credentials; import com.volcengine.redis.RedisApi; import com.volcengine.redis.model.*; import java.util.Arrays; public class TestRedis { public static void main(String[] args) throws Exception { // 设置 AKSK 验证信息及 Region // 注意示例代码安全,代码泄漏会导致 AKSK 泄漏,有极大的安全风险。 String ak = "Your AK"; String sk = "Your SK"; String region = "Your Region"; ApiClient apiClient = new ApiClient() .setCredentials(Credentials.getCredentials(ak, sk)) .setRegion(region); RedisApi redisApi = new RedisApi(apiClient); //创建一个接口入参 DescribeEnterpriseDBInstanceDetailRequest request = new DescribeEnterpriseDBInstanceDetailRequest(); //根据 DescribeEnterpriseDBInstanceDetail 接口的参数说明,设置接口入参 request.setInstanceId("redis-cn0212gzmh2xs****"); //调用接口查询指定 Redis 实例的详细信息 try { // 复制代码运行示例,请自行打印 API 返回值。 DescribeEnterpriseDBInstanceDetailResponse response = redisApi.describeEnterpriseDBInstanceDetail(request); System.out.println(response); } catch (ApiException e) { // 复制代码运行示例,请自行打印 API 错误信息。 System.out.println(e.getResponseBody()); } } }