本教程详细介绍如何使用Alibaba Cloud SDK for Java查询Redis实例列表以及单个实例信息详情。
前提条件
在使用本教程之前,请确保已完成以下操作:
- 使用Alibaba Cloud SDK for Java,您需要一个阿里云账号和访问密钥(AccessKey)。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey。
- 确保您已经安装了Alibaba Cloud SDK for Java,准确的SDK版本号,请参见 阿里云开发工具包(SDK)。
<project> <modelVersion>4.0.0</modelVersion> <groupId>java.demo</groupId> <artifactId>test</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <!-- https://mvnrepository.com/artifact/com.alisyun/aliyun-java-sdk-core --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.4.3</version> </dependency> <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-r-kvstore --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-r-kvstore</artifactId> <version>2.1.2</version> </dependency> </dependencies> </project>
示例代码
本文操作示例主要以代码形式体现,具体代码如下:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.r_kvstore.model.v20150101.DescribeInstanceAttributeRequest;
import com.aliyuncs.r_kvstore.model.v20150101.DescribeInstanceAttributeResponse;
import com.aliyuncs.r_kvstore.model.v20150101.DescribeInstancesRequest;
import com.aliyuncs.r_kvstore.model.v20150101.DescribeInstancesResponse;
import com.google.gson.Gson;
import java.util.List;
/**
* DescribeInstances 查询一个或多个Redis实例的信息
* DescribeInstanceAttribute 查询Redis实例的详细信息
*/
public class DescribeInstanceAttribute {
public static void main(String[] args) {
IAcsClient client = Initialization();
// 查询Redis实例列表(可做筛选)
List<DescribeInstancesResponse.KVStoreInstance> instances = DescribeInstances(client);
// 去Redis实例集合中的某一个进行详细信息查询
// 请根据实例情况进行选取,或者配合前端
DescribeInstancesResponse.KVStoreInstance instance = instances.get(0);
// 要查询详细信息的实例Id
String instanceId = instance.getInstanceId();
//查询Redis实例的详细信息
testDescribeInstanceAttribute(client, instanceId);
}
/**
* 查询Redis实例列表(可做筛选)
* 筛选条件可参考API:DescribeInstances
*/
private static List<DescribeInstancesResponse.KVStoreInstance> DescribeInstances(IAcsClient client) {
DescribeInstancesRequest request = new DescribeInstancesRequest();
// 实例状态:
// Normal(正常)
// Creating(创建中)
// Changing(修改中)
// Inactive(被禁用)
// Flushing(清除中)
// Released(已释放)
// Transforming(转换中)
// Unavailable(服务停止)
// Error(创建失败)
// Migrating(迁移中)
// BackupRecovering(备份恢复中)
// MinorVersionUpgrading(小版本升级中)
// NetworkModifying(网络变更中)
// SSLModifying(SSL变更中)
// MajorVersionUpgrading (大版本升级中,可正常访问)
request.setInstanceStatus("Normal");
try {
DescribeInstancesResponse response = client.getAcsResponse(request);
// 获取到Redis实例的集合
return response.getInstances();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
throw new RuntimeException();
}
}
/**
* DescribeInstanceAttribute 查询单个Redis实例的详细信息
*/
private static void testDescribeInstanceAttribute(IAcsClient client, String instanceId) {
DescribeInstanceAttributeRequest request = new DescribeInstanceAttributeRequest();
// 实例ID
request.setInstanceId(instanceId);
try {
DescribeInstanceAttributeResponse response = client.getAcsResponse(request);
// 处理单个Redis实例详细信息
System.out.println(new Gson().toJson(response));
// return new Gson().toJson(response.getInstances());
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
throw new RuntimeException();
}
}
/**
* Initialization 初始化公共请求参数
*/
private static IAcsClient Initialization() {
// 初始化请求参数
DefaultProfile profile = DefaultProfile.getProfile(
"<your-region-id>", // 您的可用区ID
"<your-access-key-id>", // 您的AccessKey ID
"<your-access-key-secret>"); // 您的AccessKey Secret
return new DefaultAcsClient(profile);
}
}
执行结果
正确的返回结果类似如下:
{
"requestId": "F74094B2-B9A8-4309-A3CC-40F4A050B8A0",
"instances": [
{
"instanceId": "r-bp1i*****",
"instanceName": "funck",
"connectionDomain": "r-bp1i*****.redis.rds.aliyuncs.com",
"port": 6379,
"instanceStatus": "Normal",
"regionId": "cn-hangzhou",
"capacity": 8192,
"instanceClass": "redis.master.large.default",
"qPS": 100000,
"bandwidth": 24,
"connections": 10000,
"zoneId": "cn-hangzhou-f",
"config": "{\"EvictionPolicy\":\"volatile-lru\",\"hash-max-ziplist-entries\":512,\"zset-max-ziplist-entries\":128,\"list-max-ziplist-entries\":512,\"list-max-ziplist-value\":64,\"zset-max-ziplist-value\":64,\"set-max-intset-entries\":512,\"hash-max-ziplist-value\":64}",
"chargeType": "PostPaid",
"nodeType": "double",
"networkType": "VPC",
"vpcId": "vpc-bp1g*****",
"vSwitchId": "vsw-bp1s*****",
"privateIp": "172.16.253.169",
"createTime": "2019-09-25T14:19:00Z",
"hasRenewChangeOrder": "false",
"isRds": true,
"engine": "Redis",
"engineVersion": "5.0",
"maintainStartTime": "18:00Z",
"maintainEndTime": "22:00Z",
"availabilityValue": "100.0%",
"securityIPList": "127.0.0.1",
"instanceType": "Redis",
"architectureType": "standard",
"nodeType1": "double",
"packageType": "standard",
"vpcAuthMode": "Open",
"auditLogRetention": "0",
"replicationMode": "master-slave",
"vpcCloudInstanceId": "r-bp1*****",
"tags": [ ]
}
]
}
在文档使用中是否遇到以下问题
更多建议
匿名提交