本示例介绍如何使用Alibaba Cloud SDK for Java调用RDS的CreateInstance接口创建一个Redis实例。

前提条件

  • 使用Alibaba Cloud SDK for Java,您需要一个阿里云账号和访问密钥(AccessKey)。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey。
  • 确保您已经安装了Alibaba Cloud SDK for Java,准确的SDK版本号,请参见 阿里云开发工具包(SDK)
    <dependencies>
        <!-- https://mvnrepository.com/artifact/com.aliyun/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>

示例代码

import java.util.UUID;
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.CreateInstanceRequest;
import com.aliyuncs.r_kvstore.model.v20150101.CreateInstanceResponse;
import com.google.gson.Gson;

/**
 * 调用CreateInstance接口创建Redis实例
 */
public class CreateInstance {
    public static void main(String[] args) {
        // 初始化请求参数
        DefaultProfile profile = DefaultProfile.getProfile(
                 "<your-region-id>",// 地域ID
                 "<your-access-key-id>",// 您的AccessKey ID
                 "<your-access-key-secret>");// 您的AccessKey Secret
        IAcsClient client = new DefaultAcsClient(profile);
        // 配置请求参数
        CreateInstanceRequest request = new CreateInstanceRequest();
        // 实例规格,详细信息请参见实例规格族
        // 说明 调用此接口需至少传递Capacity或InstanceClass中的一个参数。
        request.setInstanceClass("redis.logic.sharding.drredissdb2g.1db.0rodb.4proxy.default");
        // 实例名称
        // 名称为2-128个字符,以大小写字母或中文开头,不支持字符@/:=”<>{[]}和空格。
        request.setInstanceName("<your-instanceName>");
        // 实例密码 长度为8-32位,需包含大写字母、小写字母、特殊字符和数字中的至少三种,允许的特殊字符包括!@#$%^&*()_+-=。
        request.setPassword("<your-passwrod>");
        // 实例存储容量,单位为MB
        // 说明 调用此接口需至少传递Capacity或InstanceClass中的一个参数。
        request.setCapacity(16384L);
        // 随机字符串,用于保证请求的幂等性。要保证在不同请求间唯一
        request.setToken(UUID.randomUUID().toString());
        // 实例类型 取值:Redis  Memcache
        // 说明 默认为Redis。
        request.setInstanceType("Redis");
        // 版本类型取值:2.8  4.0   5.0
        // 说明 默认值为2.8。
        request.setEngineVersion("2.8");
        // 可用区ID,可以调用DescribeRegions接口查询,此参数指定创建实例的可用区
        request.setZoneId("<your-zoneId>");
        // 实例的详细配置,Json格式的字符串
        request.setConfig("{\"EvictionPolicy\":\"volatile-lru\"," +
                "\"hash-max-ziplist-entries\":512," +
                "\"zset-max-ziplist-entries\":128," +
                "\"zset-max-ziplist-value\":64," +
                "\"set-max-intset-entries\":512," +
                "\"hash-max-ziplist-value\":64}");
        // 付费类型
        // PrePaid(预付费)PostPaid(按量付费)说明 默认为PostPaid。
        request.setChargeType("PrePaid");
        // 节点类型
        // STAND_ALONE(单节点);MASTER_SLAVE(多节点);说明 默认值为MASTER_SLAVE。
        request.setNodeType("MASTER_SLAVE");
        // 网络类型
        // CLASSIC(经典网络)VPC(专有网络)说明 默认为经典网络。
        request.setNetworkType("VPC");
        // VPC网络的ID
        request.setVpcId("vpc-2zeugdd0wut2rh9gs0m8y");
        // 虚拟交换机的ID
        request.setVSwitchId("vrt-2zefso23vmu6xi3jeiw0z");
        // 付费周期
        // ChargeType(付费类型)为PrePaid时为必选参数,单位为月,可选值:1-9,12,24,36 。
        request.setPeriod("12");
        // 活动ID,业务ID
        request.setBusinessInfo("");
        // 优惠码默认值为youhuiquan_promotion_option_id_for_blank
        request.setSrcDBInstanceId("youhuiquan_promotion_option_id_for_blank");
        // 制定新势力的内网ID地址
        // request.setPrivateIpAddress("");
        // 是否开启自动续费
        // true(开启)false(不开启)说明 默认值:false。
        request.setAutoRenew("true");
        // 自动续费周期单位为月 可选值1、2、3、6、12
        // 说明 当AutoRenew为true时该参数必选。
        request.setAutoRenewPeriod("12");
        // 是否使用代金券
        // true(使用)false(不使用)说明 默认值:false。
        request.setAutoUseCoupon("false");

        try {
            CreateInstanceResponse response = client.getAcsResponse(request);
            System.out.println(new Gson().toJson(response));
        } catch (ClientException e) {
            System.out.println("ErrCode:" + e.getErrCode());
            System.out.println("ErrMsg:" + e.getErrMsg());
            System.out.println("RequestId:" + e.getRequestId());
        }
    }
}
说明 更多参数、接口信息,请参见API概览。