Common
The common APIs are available regardless of whether Cluster Mode is enabled or not.
Retrieve engine version list
Retrieves a list of available Redis engine versions.
Request
Retrieve engine version list request syntax
curl -X GET "https://redis.kr-central-2.kakaocloud.com/v1/redis/versions" \
-H "accept: application/json" \
-H "X-Auth-Token: {token-id}"
| Type | Parameter | Data type | Description |
|---|---|---|---|
| Header | {token-id}* | String | Refer to API authentication token |
Response
| Status code | Description |
|---|---|
200 | Successful response for resource creation |
400 | Invalid request |
403 | Forbidden |
404 | Resource not found |
| Field | Data type | Description |
|---|---|---|
| [] | String Array | List of engine versions |
Retrieve engine version list response example
200 OK
content-length: ...
content-type: application/json; charset=UTF-8
["7.2.11","7.2.6","7.0.15","6.2.20","6.2.16","6.2.5","5.0.6"]
Retrieve flavor list
Retrieves a list of available flavors.
Request
Retrieve flavor list request syntax
curl -X GET "https://redis.kr-central-2.kakaocloud.com/v1/redis/flavors" \
-H "accept: application/json" \
-H "X-Auth-Token: {token-id}"
| Type | Parameter | Data type | Description |
|---|---|---|---|
| Header | {token-id}* | String | Refer to API authentication token |
Response
| Status code | Description |
|---|---|
200 | Successful response for resource creation |
401 | Unauthorized |
403 | Forbidden |
404 | Resource not found |
500 | Internal server error |
| Field | Data type | Description |
|---|---|---|
| flavors[] | Object Array | List of available flavors |
| flavors[].id | String | Flavor ID |
| flavors[].name | String | Flavor name |
| flavors[].vcpus | Integer | Number of virtual CPUs |
| flavors[].memory | Integer | Memory size (GiB) |
Retrieve flavor list response example
200 OK
content-length: ...
content-type: application/json; charset=UTF-8
{
"flavors": [
{
"id": "3830ebad-ea2f-4822-8a7d-9e301c86a58d",
"name": "a1-2-co",
"vcpus": 2,
"memory": 4
},
{
"id": "9e34af24-e1fa-475f-ba5c-11f0116e1d85",
"name": "a1-4-co",
"vcpus": 4,
"memory": 8
},
{
"id": "f443e5e2-84c1-47c1-984b-ee2221b96fe8",
"name": "a1-8-co",
"vcpus": 8,
"memory": 16
}
]
}
Retrieve cluster list
Retrieves a list of all clusters.
Request
Retrieve cluster list Request Syntax
curl -X GET "https://redis.kr-central-2.kakaocloud.com/v1/clusters" \
-H "X-Auth-Token: {token-id}"
| Type | Parameter | Data type | Description |
|---|---|---|---|
| Header | {token-id}* | String | See API authentication token |
| Query | {parameter-group-id or parameter-group-name} | String | Parameter group ID or name |
Response
| Status code | Description |
|---|---|
200 | Successful response to a resource creation request |
400 | The request is invalid and cannot be processed |
401 | Request made by an unauthenticated user |
403 | Request made by a user without permissions |
500 | Operation cannot be performed due to internal error |
| Field | Type | Description |
|---|---|---|
| clusters[] | Object Array | List of clusters |
| clusters.projectId | String | Project ID |
| clusters.objectId | String | Object ID |
| clusters.name | String | Cluster name |
| clusters.description | String | Cluster description |
| clusters.version | String | Redis version |
| clusters.port | Integer | Redis port number |
| clusters.clusterEnabled | Boolean | Whether cluster mode is enabled - true: Enabled - false: Disabled |
| clusters.recoveryEnabled | Boolean | Whether high availability mode is enabled - true: Enabled (always true in cluster mode) - false: Disabled |
| clusters.shardCount | Integer | Number of shards |
| clusters.totalNodeCount | Integer | Total number of nodes |
| clusters.flavorId | String | Flavor ID |
| clusters.vcpu | Integer | Number of virtual CPUs |
| clusters.memory | Integer | Memory size (GiB) |
| clusters.endpoints | Object | Endpoint addresses |
| clusters.endpoints.primaryEndpoint | String | Primary endpoint address |
| clusters.endpoints.readEndpoint | String | Read-only endpoint address - Not available in cluster mode |
| clusters.userName | String | User ID; - if authentication is disabled |
| clusters.subnets[] | Object Array | Available subnets for placement |
| clusters.subnets[].id | String | Subnet ID |
| clusters.subnetAssignments[] | Object Array | Subnet assignment list |
| clusters.subnetAssignments[].primary | Object | Primary subnet assignment |
| clusters.subnetAssignments[].primary.id | String | Primary subnet ID |
| clusters.subnetAssignments[].replicas[] | Object Array | Replica subnet assignments |
| clusters.subnetAssignments[].replicas[].id | String | Replica subnet ID |
| clusters.securityGroups[] | Object Array | Associated security groups |
| clusters.securityGroups[].id | String | Security group ID |
| clusters.backupSchedule | Object | Automatic backup policy |
| clusters.backupSchedule.cron | String | Cron expression for backup schedule |
| clusters.backupSchedule.retentionLimit | Integer | Backup retention period (in days) |
| clusters.tlsEnabled | Boolean | Whether TLS is enabled |
| clusters.creator | String | Cluster creator ID |
| clusters.license | String | License type |
| clusters.status | String | Cluster status |
| clusters.parameterGroupId | String | ID of applied parameter group |
| clusters.parameterGroupName | String | Name of applied parameter group |
| clusters.parameterGroupSyncStatus | String | Sync status of the parameter group |
| clusters.createdAt | String | Cluster creation timestamp (RFC3339) |
Retrieve cluster list Response Example
200 OK
content-length: ...
content-type: application/json; charset=UTF-8
{
"clusters": [
{
"projectId": "377813fe9e0144dc8cd867c2zxcvasdf",
"objectId": "qqqqwwww-7347-4d87-a49f-e705e91db2fb",
"name": "test-cluster",
"description": "test-cluster",
"version": "6.2.5",
"port": 6379,
"clusterEnabled": true, /* redis cluster */
"recoveryEnabled": true,
"shardCount": 2,
"totalNodeCount": 6,
"flavorId": "ffffffff-ea2f-4822-8a7d-9e301c86a58d",
"vcpu": 2,
"memory": 16,
"endpoints": {
"primaryEndpoint": "",
"readEndpoint": ""
},
"userName": "testusername",
"subnets": [ /* node 배치 가능한 subnet 리스트 */
{"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
{"id": "yyyyyyyy-0a69-4f8b-b56d-59ce12b4d55b"}
],
"subnetAssignments": [
{
"primary": {"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
"replicas": [
{"id": "yyyyyyyy-0a69-4f8b-b56d-59ce12b4d55b"},
{"id": "yyyyyyyy-0a69-4f8b-b56d-59ce12b4d55b"}
]
},
{
"primary": {"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
"replicas": [
{"id": "yyyyyyyy-0a69-4f8b-b56d-59ce12b4d55b"},
{"id": "yyyyyyyy-0a69-4f8b-b56d-59ce12b4d55b"}
]
}
],
"securityGroups": [
{"id": "abcdxxxx-4870-4c4e-a267-2de13e38c2ea"},
{"id": "qwergggg-4870-4c4e-a267-2de13e38c2ea"}
],
"backupSchedule": null,
"creator": "ms@kakaoenterprise.com",
"license": "GPL",
"status": "Modifying",
"createdAt": "2024-03-06T02:35:13Z"
},
{
"projectId": "377813fe9e0144dc8cd867c2zxcvasdf",
"objectId": "aaaassss-7347-4d87-a49f-e705e91db2fb",
"name": "test-instance-group",
"description": "test-instance-group",
"version": "6.2.5",
"port": 6379,
"clusterEnabled": false, /* redis instance set */
"recoveryEnabled": false,
"shardCount": 0,
"totalNodeCount": 4,
"flavorId": "3830ebad-ea2f-4822-8a7d-9e301c86a58d",
"vcpu": 2,
"memory": 8,
"endpoints": {"primaryEndpoint": "", "readEndpoint": ""},
"userName": "testusername",
"subnets": [
{"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
],
"subnetAssignments": [
{
"primary": {"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
"replicas": [
{"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
{"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
{"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"}
]
}
],
"securityGroups": [
{"id": "abcdxxxx-4870-4c4e-a267-2de13e38c2ea"},
{"id": "qwergggg-4870-4c4e-a267-2de13e38c2ea"}
],
"backupSchedule": {
"cron": "* 1 * * *",
"retentionLimit": 15
},
"tlsEnabled": false,
"creator": "ms@kakaoenterprise.com",
"license": "GPL",
"status": "Creating",
"parameterGroupId": "bbbbcccc-1234-1234-5678-e705e91db2fb",
"parameterGroupName": "test-parameter-group",
"parameterGroupSyncStatus": "In-Sync",
"createdAt": "2024-03-06T02:35:13Z"
}
]
}
Retrieve cluster details
Retrieves detailed information about a specific cluster.
Request
Retrieve cluster details Request Syntax
curl -X GET "https://redis.kr-central-2.kakaocloud.com/v1/clusters/{cluster-id}" \
-H "X-Auth-Token: {token-id}"
| Type | Parameter | Data type | Description |
|---|---|---|---|
| URL | {cluster-id}* | String | Cluster ID |
| Header | {token-id}* | String | See API authentication token |
Response
| Status code | Description |
|---|---|
200 | Successful response to resource retrieval/deletion |
400 | The request is invalid and cannot be processed |
401 | Request made by an unauthenticated user |
403 | Request made by a user without permissions |
404 | Requested resource does not exist |
500 | Operation cannot be performed due to internal error |
| Field | Type | Description |
|---|---|---|
| projectId | String | Project ID |
| objectId | String | Object ID |
| name | String | Cluster name |
| description | String | Cluster description |
| version | String | Redis version |
| port | Integer | Redis port number |
| clusterEnabled | Boolean | Whether cluster mode is enabled - true: Enabled - false: Disabled |
| recoveryEnabled | Boolean | Whether high availability mode is enabled - true: Enabled (always true in cluster mode) - false: Disabled |
| shardCount | Integer | Number of shards - 0 if cluster mode is disabled |
| totalNodeCount | Integer | Total number of nodes |
| flavorId | String | Flavor ID |
| vcpu | Integer | Number of virtual CPUs |
| memory | Integer | Memory size (GiB) |
| endpoints | Object | Endpoint addresses |
| endpoints.primaryEndpoint | String | Primary endpoint address |
| endpoints.readEndpoint | String | Read-only endpoint address - Not available in cluster mode |
| userName | String | User ID; - if authentication is disabled |
| subnets[] | Object Array | List of subnets available for placement |
| subnets[].id | String | Subnet ID |
| subnetAssignments[] | Object Array | List of subnet assignments |
| subnetAssignments[].primary | Object | Primary subnet assignment |
| subnetAssignments[].primary.id | String | Primary subnet ID |
| subnetAssignments[].replicas[] | Object Array | Replica subnet assignments |
| subnetAssignments[].replicas[].id | String | Replica subnet ID |
| securityGroups[] | Object Array | List of security groups connected to the cluster |
| securityGroups[].id | String | Security group ID |
| backupSchedule | Object | Automatic backup policy |
| backupSchedule.cron | String | Cron expression for backup schedule |
| backupSchedule.retentionLimit | Integer | Backup retention period (in days) |
| tlsEnabled | Boolean | Whether TLS is enabled |
| creator | String | Cluster creator ID |
| license | String | License type |
| status | String | Cluster status |
| parameterGroupId | String | ID of the applied parameter group |
| parameterGroupName | String | Name of the applied parameter group |
| parameterGroupSyncStatus | String | Sync status of the parameter group |
| createdAt | String | Cluster creation timestamp (RFC3339) |
| userName | String | User account name; - if authentication is disabled |
Retrieve cluster details Response Example
200 OK
content-length: ...
content-type: application/json; charset=UTF-8
{
"projectId": "377813fe9e0144dc8cd867c2zxcvasdf",
"objectId": "qqqqwwww-7347-4d87-a49f-e705e91db2fb",
"name": "test-cluster",
"description": "test-cluster",
"version": "6.2.5",
"port": 6379,
"clusterEnabled": true, /* redis cluster */
"recoveryEnabled": true,
"shardCount": 2,
"totalNodeCount": 6,
"flavorId": "ffffffff-ea2f-4822-8a7d-9e301c86a58d",
"vcpu": 2,
"memory": 16,
"endpoints": {
"primaryEndpoint": "",
"readEndpoint": ""
},
"userName": "testusername",
"subnets": [ /* node 배치 가능한 subnet 리스트 */
{"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
{"id": "yyyyyyyy-0a69-4f8b-b56d-59ce12b4d55b"}
],
"subnetAssignments": [
{
"primary": {"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
"replicas": [
{"id": "yyyyyyyy-0a69-4f8b-b56d-59ce12b4d55b"},
{"id": "yyyyyyyy-0a69-4f8b-b56d-59ce12b4d55b"}
]
},
{
"primary": {"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
"replicas": [
{"id": "yyyyyyyy-0a69-4f8b-b56d-59ce12b4d55b"},
{"id": "yyyyyyyy-0a69-4f8b-b56d-59ce12b4d55b"}
]
}
],
"securityGroups": [
{"id": "abcdxxxx-4870-4c4e-a267-2de13e38c2ea"},
{"id": "qwergggg-4870-4c4e-a267-2de13e38c2ea"}
],
"backupSchedule": null,
"tlsEnabled": false,
"creator": "ms@kakaoenterprise.com",
"license": "GPL",
"status": "Modifying",
"parameterGroupId": "bbbbcccc-1234-1234-5678-e705e91db2fb",
"parameterGroupName": "test-parameter-group",
"parameterGroupSyncStatus": "In-Sync",
"createdAt": "2024-03-06T02:35:13Z"
}
Retrieve instance set details
Retrieves detailed information about the specified instance set.
Request
Retrieve instance set (non-cluster mode) details Request Syntax
curl -X GET "https://redis.kr-central-2.kakaocloud.com/v1/clusters/{instance-set-id}" \
-H "X-Auth-Token: {token-id}"
| Type | Parameter | Data Type | Description |
|---|---|---|---|
| URL | {instance-set-id}* | String | Instance set ID |
| Header | {token-id}* | String | See API authentication token |
Response
| Status Code | Description |
|---|---|
200 | Successful response for retrieval/deletion request |
400 | Request is invalid and cannot be processed |
401 | Request made by unauthenticated user |
403 | Request made by unauthorized user |
404 | Requested resource does not exist |
500 | Internal error prevents operation |
| Field | Type | Description |
|---|---|---|
| projectId | String | Project ID |
| objectId | String | Cluster/Instance set ID |
| name | String | Cluster name |
| description | String | Cluster description |
| version | String | Redis version |
| port | Integer | Redis port number |
| clusterEnabled | Boolean | Whether cluster mode is enabled - true: Enabled - false: Disabled |
| recoveryEnabled | Boolean | Whether high availability mode is enabled - true: Enabled (always true in cluster mode) - false: Disabled |
| shardCount | Integer | Number of shards - 0 when cluster mode is not used |
| totalNodeCount | Integer | Total number of nodes |
| flavorId | String | Flavor ID |
| vcpu | Integer | Number of virtual CPUs |
| memory | Integer | Memory size (GiB) |
| endpoints | Object | Endpoint addresses |
| endpoints.primaryEndpoint | String | Primary endpoint address |
| endpoints.readEndpoint | String | Read-only endpoint address - Not available in cluster mode |
| userName | String | User ID; - if authentication is disabled |
| subnets[] | Object Array | List of subnets available for placement |
| subnets[].id | String | Subnet ID |
| subnetAssignments[] | Object Array | Subnet assignments |
| subnetAssignments[].primary | Object | Primary subnet assignment |
| subnetAssignments[].primary.id | String | Primary subnet ID |
| subnetAssignments[].replicas[] | Object Array | Replica subnet assignments |
| subnetAssignments[].replicas[].id | String | Replica subnet ID |
| securityGroups[] | Object Array | List of security groups associated with the cluster |
| securityGroups[].id | String | Security group ID |
| backupSchedule | Object | Automatic backup policy |
| backupSchedule.cron | String | Cron expression for automatic backup schedule |
| backupSchedule.retentionLimit | Integer | Backup retention period (days) |
| tlsEnabled | Boolean | Whether TLS is enabled |
| creator | String | Cluster creator |
| license | String | License type |
| status | String | Cluster status |
| parameterGroupId | String | ID of the applied parameter group |
| parameterGroupName | String | Name of the applied parameter group |
| parameterGroupSyncStatus | String | Parameter group sync status |
| createdAt | String | Cluster creation time (RFC3339) |
| userName | String | User account name; - if authentication is disabled |
Retrieve instance set details Response Example
200 OK
content-length: ...
content-type: application/json; charset=UTF-8
{
"projectId": "377813fe9e0144dc8cd867c2zxcvasdf",
"objectId": "aaaassss-7347-4d87-a49f-e705e91db2fb",
"name": "test-instance-group",
"description": "test-instance-group",
"version": "6.2.5",
"port": 6379,
"clusterEnabled": false, /* redis instance set */
"recoveryEnabled": false,
"shardCount": 0,
"totalNodeCount": 4,
"flavorId": "3830ebad-ea2f-4822-8a7d-9e301c86a58d",
"vcpu": 2,
"memory": 8,
"endpoints": {"primaryEndpoint": "", "readEndpoint": ""},
"userName": "testusername",
"subnets": [
{"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"}
],
"subnetAssignments": [
{
"primary": {"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
"replicas": [
{"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
{"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"},
{"id": "xxxxxxxx-0a69-4f8b-b56d-59ce12b4d55b"}
]
}
],
"securityGroups": [
{"id": "abcdxxxx-4870-4c4e-a267-2de13e38c2ea"},
{"id": "qwergggg-4870-4c4e-a267-2de13e38c2ea"}
],
"backupSchedule": {
"cron": "* 1 * * *",
"retentionLimit": 15
},
"tlsEnabled": false,
"creator": "ms@kakaoenterprise.com",
"license": "GPL",
"status": "Creating",
"parameterGroupId": "bbbbcccc-1234-1234-5678-e705e91db2fb",
"parameterGroupName": "test-parameter-group",
"parameterGroupSyncStatus": "In-Sync",
"createdAt": "2024-03-06T02:35:13Z"
}
Retry applying parameter group to cluster
If the parameter group application status is not normal (e.g., Error-Sync, Suspended), you can retry applying the parameter group to the cluster.
Request
Retry applying parameter group Request Syntax
curl -X POST "https://redis.kr-central-2.kakaocloud.com/v1/clusters/{cluster-id or instance-set-id}/parameter-group/apply" \
-H "X-Auth-Token: {token-id}"
| Type | Parameter | Data Type | Description |
|---|---|---|---|
| URL | {cluster-id or instance-set-id}* | String | Cluster ID or instance set ID |
| Header | {token-id}* | String | See API authentication token |
Response
| Status Code | Description |
|---|---|
200 | Successful response for retrieval/deletion request |
400 | Request is invalid and cannot be processed |
401 | Request made by unauthenticated user |
403 | Request made by unauthorized user |
404 | Requested resource does not exist |
500 | Internal error prevents operation |
| Field | Type | Description |
|---|---|---|
| objectId | String | Cluster ID |
Retry applying parameter group to cluster Response Example
200 OK
content-length: ...
content-type: application/json; charset=UTF-8
{
"objectId": "aaaassss-7347-4d87-a49f-e705e91db2fb",
}