云服务器内容精选

  • 响应参数 状态码: 201 表4 响应Body参数 参数 参数类型 描述 id String 特性编号 name String 特性名称 enable Boolean 是否开启特性 config String 特性参数配置 instance_id String 实例编号 update_time String 实例特性更新时间 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 响应示例 状态码: 201 Created { "config" : "on", "enable" : true, "id" : "db9a9260cd3e4a16a9b5747a65d3ffaa", "instance_id" : "eddc4d25480b4cd6b512f270a1b8b341", "name" : "app_api_key", "update_time" : "2020-08-24T01:17:31.041984021Z" } 状态码: 400 Bad Request { "error_code" : "APIG.2000", "error_msg" : "unrecognized feature app-api-key" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3030", "error_msg" : "The instance does not exist;id:eddc4d25480b4cd6b512f270a1b8b341" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。通过调用 IAM 服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 name 是 String 特性名称 enable 是 Boolean 是否开启特性 config 否 String 特性参数配置
  • 不同实例类型的副本和分片数 单机实例:单机实例只有1个节点,1个Redis进程,当Redis进程故障后,D CS 为实例重新拉起一个新的Redis进程。 主备/读写分离实例:分片数为1,包含一个主节点,一个或多个备节点。当主节点出现故障时,会进行主备倒换,恢复业务。 集群实例:集群实例由多个分片组成,每个分片默认是一个双副本的主备实例。例如一个3分片,2副本的集群实例,则每个分片都有2个节点(1个主节点,1个备节点)。 实例类型 分片数 副本数 负载均衡 占用IP数 单机 单分片 单副本,不支持多副本 - 1个 主备 单分片 默认双副本 Redis 4.0/5.0版本主备实例支持2-10副本,其他版本仅支持2副本 不支持 占用IP个数=副本数 读写分离 单分片 默认双副本,支持2-6副本 支持 1个 Proxy集群 多分片 双副本,不支持其他副本数 支持 1个 Cluster集群 多分片 默认双副本 Redis 4.0/5.0版本Cluster集群支持1-5副本,Redis 6.0版本支持1-2副本 不支持 占用IP个数=副本数*分片数
  • Redis实例是否支持多DB方式? Redis实例支持多DB方式的情况如下: Redis单机、读写分离和主备缓存实例支持多数据库(多DB),默认256个,DB编号为0-255。默认使用的是DB0。多数据库主要用于数据隔离,每个数据库的大小不是平均分配,可能会出现一个数据库将实例的内存完全占用的情况。 Redis Proxy集群默认只有一个DB。 如需创建多DB的Proxy集群实例请参考如何创建多DB的Proxy集群实例。 创建单DB的Proxy集群实例后,如需开启多DB的操作请参考Proxy集群使用多DB限制。 Redis 3.0 proxy不支持开启多DB。 Redis Cluster集群实例不支持多DB,只有一个DB,即DB0。 DB的个数不支持修改,每个DB的大小也不支持自定义。 父主题: 实例特性
  • Redis实例是否支持开启主节点不持久化,仅从节点持久化 DCS Redis 4.0/5.0/6.0基础版的主备和集群实例、企业版高性能型主备实例,可以通过将实例参数appendonly设置为only-replica,开启实例仅从节点持久化。 其他版本和实例类型暂不支持该特性。 appendonly参数默认只有yes和no两个选项,如需设置为only-replica,需要联系运维人员放通该参数的白名单。 仅从节点持久化相对于主从节点同时持久化,因主节点减少了AOF写入和重写的影响,性能会有所提升,但可靠性会有所降低,请根据实际业务情况选择。
  • Redis实例支持的持久化方式 Redis实例默认仅支持AOF的方式进行持久化,同时支持客户自行开关数据持久化配置。创建的实例(单机或单副本集群除外)默认开启AOF持久化。 Redis实例默认不支持RDB持久化,因此也无法支持客户自行配置save参数。如果需要进行RDB持久化,可以使用主备或者集群实例的备份恢复功能,备份恢复时,Redis 4.0及以上版本实例,可以支持选择生成RDB持久化文件并且自动转储到OBS中。
  • 开启/关闭AOF持久化的影响 开启AOF持久化后,由于Redis-Server进程需要在AOF文件中记录对应的操作信息,用来进行数据持久化。开启持久化可能存在的影响: 当出现底层计算节点磁盘硬件故障或者IO故障时,可能会造成时延冲高或者主备倒换等情况发生。 Redis-Server进程会定期进行AOF重写操作,重写期间可能会造成短暂的时延冲高,AOF重写规则请参考AOF文件在什么情况下会被重写?。 如果在缓存场景下使用DCS实例进行应用加速,建议可以关闭持久化参数以获得更高的性能和稳定性。 关闭持久化需根据实际业务慎重操作,关闭持久化后在极端故障场景(例如主备节点同时故障等)下可能出现缓存数据丢失的问题。
  • DCS实例的CPU规格是怎么样的 Redis基础版: 使用DCS Redis基础版实例的用户无需关心CPU规格的指标,仅需关心QPS,带宽,内存大小等核心指标。 Redis基础版的实例基于开源Redis构造,开源Redis使用单个主线程处理命令,只能利用一个核的CPU,因此,只需认为单个Redis节点仅使用1核CPU即可。提升基础版Redis实例的内存大小,CPU规格不变。 Redis基础版由于社区版单线程处理模型的限制,如需增加实例CPU处理性能,请使用集群类型的Redis实例,通过增加分片的方式,来增加整个集群的处理性能。集群实例每个节点默认分配1核CPU进行处理。 Redis企业版: DCS Redis企业版为多线程版本,企业版Redis线程数请参考表1。企业版Redis的CPU最大使用率=线程数x100%,例如线程数为3的企业版Redis,最大CPU使用率为300%。 表1 企业版Redis线程数 实例内存规格 线程数(企业版高性能型主备实例) 线程数(企业版存储型主备实例) 8 GB 3 3 16 GB 4 6 32 GB 4 7 64 GB 4 - 父主题: 实例特性
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 name 是 String 特性名称 最小长度:1 最大长度:64 enable 是 Boolean 是否开启特性 config 否 String 特性参数配置
  • 响应示例 状态码: 201 Created { "config" : "on", "enable" : true, "id" : "db9a9260cd3e4a16a9b5747a65d3ffaa", "instance_id" : "f0fa1789-3b76-433b-a787-9892951c620e", "name" : "app_api_key", "update_time" : "2020-08-24T01:17:31.041984021Z" } 状态码: 400 Bad Request { "error_code" : "APIG.2000", "error_msg" : "unrecognized feature app-api-key" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3030", "error_msg" : "The instance does not exist;id:f0fa1789-3b76-433b-a787-9892951c620e" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • 响应参数 状态码: 201 表4 响应Body参数 参数 参数类型 描述 id String 特性编号 name String 特性名称 最小长度:1 最大长度:64 enable Boolean 是否开启特性 config String 特性参数配置 instance_id String 实例编号 update_time String 实例特性更新时间 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 响应示例 状态码: 200 OK { "total" : 1, "size" : 1, "features" : [ { "config" : "on", "enable" : true, "id" : "db9a9260cd3e4a16a9b5747a65d3ffaa", "instance_id" : "f0fa1789-3b76-433b-a787-9892951c620e", "name" : "app_api_key", "update_time" : "2020-08-24T01:17:31.041984Z" } ] } 状态码: 400 Bad Request { "error_code" : "APIG.2012", "error_msg" : "Invalid parameter value,parameterName:instance_id. Please refer to the support documentation" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3030", "error_msg" : "The instance does not exist;id:f0fa1789-3b76-433b-a787-9892951c620e" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 size Integer 本次返回的列表长度 total Long 满足条件的记录数 features Array of FeatureInfoV2 objects 实例特性列表 表5 FeatureInfoV2 参数 参数类型 描述 id String 特性编号 name String 特性名称 最小长度:1 最大长度:64 enable Boolean 是否开启特性 config String 特性参数配置 instance_id String 实例编号 update_time String 实例特性更新时间 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 配置说明 Redis Cluster集群实例,使用cluster nodes查询所有主备节点,客户端连接备节点,并在节点上做配置,开启备节点只读访问,从而实现读写分离。 查询集群节点命令如下: redis-cli -h {redis_address} -p {redis_port} -a {redis_password} cluster nodes 从节点配置只读模式,请参考READONLY命令。 Redis 4.0/5.0/6.0基础版版本主备实例,在控制台的实例详情信息页面, 域名 区分可读写域名和只读域名,分别对应主节点和备节点,在客户端增加用户读写请求判断,如果是写请求,则将请求发送给读写域名,如果是读请求,则将请求发送给只读域名。 读写分离实例,默认为从服务端侧实现的读写分离,通过Proxy节点识别用户读写请求,如果是写请求,则转发给主节点,如果是读请求,则转发给备节点,不需要用户在客户端做任何配置。