云服务器内容精选

  • 使用须知 该功能目前为公测阶段,如需使用,请联系客服申请开通。 搭建双活关系时,需要确保跨区域VPC网络互通,具体操作请参见跨区域VPC互通。 搭建双活关系前,需要在指定的区域提前创建好目标实例,且规格不小于源实例,且存储不小于源实例。如需放开规格限制,您可以联系客服申请,需注意目标实例的规格相较于源实例的规格不能过小,否则可能会导致目标实例CPU或内存资源不足。 搭建双活关系前,目标实例不能有任何额外的表。 双活的目标实例的管理员密码必须与源实例保持一致。 双活搭建完成以后,如果解除双活关系不能手动清理目标实例表(drop操作),否则无法重新再搭建双活实例。 当前实例为搭建双活关系中的源实例,负责将源实例的全量数据传输到目标实例。
  • 操作步骤 登录管理控制台。 在“实例管理”页面,单击“购买数据库实例”。 在“服务选型”页面,选择计费模式,兼容接口选择HBase,填写并选择实例相关信息后,单击“立即购买”。 图1 计费模式和基本信息 表1 计费方式 参数 描述 计费模式 目前仅支持按需计费模式。 用户选购完服务配置后,无需设置购买时长,系统会根据消费时长对账户余额进行扣费。 表2 基本信息 参数 描述 区域 租户所在的区域。 须知: 请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。不同区域内的产品内网不互通,且购买后不能更换,请谨慎选择。 实例名称 设置实例名称时,需要满足如下规则。 实例名称允许和已有名称重复。 实例名称长度在4个到64个字节之间,必须以字母或中文字开头,区分大小写,可以包含字母、数字、中划线、下划线或中文(一个中文字符占用3个字节),不能包含其他特殊字符。 兼容接口 HBase 实例类型 集群 版本 3.11 可用区 指在同一区域下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。 图2 规格与存储 表3 规格与存储 参数 描述 性能规格 CPU规格越高,性能越好。请根据实际业务场景,选取符合业务类型的性能规格。 节点数量 节点数量可选择范围为3~21,请根据实际需要进行选取。 存储空间 存储空间的取值范围(最大值和最小值)与所选的实例规格有关 调整存储空间容量时,选择容量大小必须为整数,且至少需选择1GB的扩容量。 图3 网络配置 表4 网络配置 参数 描述 虚拟私有云 实例所在的 虚拟专用网络 ,可以对不同业务进行网络隔离。您可根据需要创建或选择所需的虚拟私有云。 如果没有可用的VPC,系统自动为您分配资源。 如何创建VPC,请参见《虚拟私有云用户指南》中的“创建虚拟私有云基本信息及默认子网”。 您还可以通过共享VPC功能,使用其他账号共享的VPC和子网。 共享VPC是基于 资源访问管理 (Resource Access Manager,简称 RAM )服务的机制,VPC的所有者可以将VPC内的子网共享给其他账号使用,以实现网络资源的共享和统一管理,提升资源管控效率、降低运维成本。 有关VPC子网共享的更多信息,请参见《虚拟私有云用户指南》的“共享VPC”相关内容。 说明: 目前实例创建完成后不支持切换 虚拟私有云VPC ,请谨慎选择所属虚拟私有云。 如需与E CS 进行内网通信,实例与需要通信的ECS需要处于同一个虚拟私有云下,或者不同虚拟私有云之间配置对等连接。 子网 通过子网提供与其他网络隔离的、可以独享的网络资源,以提高网络安全。 说明: 目前不支持选择IPV6网段的子网,建议您在使用时创建并选择IPV4网段的子网。 内网安全组 安全组限制安全访问规则,加强与其他服务间的安全访问。请确保所选取的安全组允许客户端访问数据库实例。 如果没有可用的安全组,系统自动为您分配资源。 图4 数据库配置 表5 数据库配置 参数 描述 管理员账户名 管理员账户名默认为rwuser。 管理员密码 用户设置的密码。 长度为8~32个字符。 必须是大写字母、小写字母、数字、特殊字符的组合,其中可输入特殊字符~!@#%^*-_=+?。 系统会进行弱密码校验,安全起见,请输入高强度密码。 请妥善管理您的密码,因为系统将无法获取您的密码信息。 确认密码 必须和管理员密码一致。 企业项目 该参数针对企业用户使用。 企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理,默认项目为default。 请在下拉框中选择所在的企业项目。更多关于企业项目的信息,请参见《企业管理用户指南》。 参数模板 数据库参数模板就像是数据库引擎配置值的容器,参数模板中的参数可应用于一个或多个相同类型的数据库实例。实例创建成功后,参数模板可进行修改。 用户可以在实例创建完成之后根据业务需要进行调整。 SSL安全连接 SSL证书是一种遵守SSL协议的服务器数字证书,能在客户端和服务器端之间建立加密通道,保证数据在传输过程中不被窃取或篡改。 您可以开启SSL连接,提高数据安全性。 说明: 如果您在创建实例时未开启SSL安全连接,可以待实例创建成功后开启,操作详情请参见设置SSL 数据加密 。 表6 标签 参数 描述 标签 可选配置,对GeminiDB HBase的标识。使用标签可以方便识别和管理您拥有的GeminiDB HBase资源。 每个实例默认最多支持20个标签配额。 如您的组织已经设定GeminiDB HBase的相关标签策略,则需按照标签策略规则为实例添加标签。标签如果不符合标签策略的规则,则可能会导致实例创建失败,请联系组织管理员了解标签策略详情。 标签由标签“键”和标签“值”组成。 键:如果要为数据库实例添加标签,该项为必选参数。 对于每个实例,每个标签的键唯一。长度不超过128字符,只能包含数字(0-9)、英文字母(A-Z,a-z)、下划线(_)、点(.)、连接符(-)和中文。 值:如果要为数据库实例添加标签,该项为可选参数。 长度不超过255个字符,只能包含数字(0-9)、英文字母(A-Z,a-z)、下划线(_)、点(.)、连接符(-)和中文。 在“订单详情确认”页面,核对实例信息。 如果需要修改,单击“上一步”,修改实例信息。 核对无误后,勾选协议,单击“提交”,开始创建实例。 在“实例管理”页面,您可以查看并管理实例。 实例创建过程中,运行状态显示为“创建中”。 实例创建完成后,运行状态显示为“正常”。 如果页面长时间未刷新,您可以单击页面右上角的刷新页面查看实例运行状态。 创建实例时,系统默认开启自动备份策略。因此,实例创建成功后,系统会自动创建一个全量备份。 实例创建完成后,在“实例管理”页面的兼容接口列显示“Cassandra 3.11.3”,实际为兼容HBase的Cassandra接口,使用与HBase无差异,可放心使用。
  • 查看实例IP地址 登录管理控制台。 在“实例管理”页面,单击目标实例名称,进入基本信息页面。 方法一: 在“基本信息”页面下方节点信息列表中,即可查看到GeminiDB HBase实例下各个节点的内网IP地址。 GeminiDB HBase实例目前不支持绑定公网IP。 图1 查看IP地址 在网络信息区域可以查看到GeminiDB HBase实例的端口,界面显示默认为8635,实际使用的默认端口为2181。 图2 查看端口 方法二: 您也可以单击实例“基本信息”左侧导航中的“连接管理”,即可查看到实例的内网IP地址和端口。 图3 查看IP和端口
  • GeminiDB HBase 接口兼容性列表 GeminiDB HBase目前暂不支持集群运维与管理相关接口。如果有实例级别操作需求如重启等,可以使用控制台相关功能。 表1 接口功能分类 接口 功能 是否支持 数据接口 Get Get:单行查询。 是 Filter:服务端过滤。 规划中 Consistency:数据强一致。 是 Versions:多版本查询。 是 Put Put:单行插入。 是 Condition:条件插入。 是 TTL:过期数据自动删除。 是 Versions:多版本写入。 是 Delete Delete:单行全部删除。 是 Delete:指定ColumnFamily/Qualifier删除。 是 Versions:多版本删除。 是 Scan Scan:全量扫描。 是 Scan:指定start/stop行进行扫描。 是 TimeRange:过滤时间范围。 是 Filter:过滤指定cf/qf。 规划中 Versions:多版本查询。 是 Reversed:逆序查询。 是 Increment 普通Increment操作。 规划中 Append 普通Append操作。 规划中 Bulk Load 从文件批量导入数据。 规划中 元数据操作 Table Create:普通创表操作。 是 SplitKey:创表同时指定。 是 Region:自动分裂。 是 Disable/Delete:禁用/删表。 是 Compress:指定压缩算法(已自带数据压缩)。 暂无规划 Alter Table:增加ColumnFamily。 是 Alter Table:减少ColumnFamily。 规划中 集群管理接口 运维侧关注,客户无需关注。 Namespace 创建/删除Namespace。 是 其他参数指定。 暂无规划 额外支持 Coprocessor 支持自定义插件 暂无规划 二级索引 需要Column内容支持用户多样化查询 规划中 父主题: HBase协议兼容版实例
  • 请求示例 URI样例 PUT https://gaussdb-nosql.cn-north-4.myhuaweicloud.com/v3.1/375d8d8fad1f43039e23d3b6c0f60a19/configurations/e02e76567ae04662a2753492b77f965bpr06 修改参数模板参数 请求体参数中,至少有一个非空,否则会下发失败。 { "name" : "configuration_test", "description" : "configuration_test", "values" : { "concurrent_reads" : "64" } }
  • 请求示例 URI样例 PUT https://gaussdb-nosql.cn-north-4.myhuaweicloud.com/v3/375d8d8fad1f43039e23d3b6c0f60a19/configurations/e02e76567ae04662a2753492b77f965bpr06 修改参数模板参数 请求体参数中,至少有一个非空,否则会下发失败。 { "name" : "configuration_test", "description" : "configuration_test", "values" : { "concurrent_reads" : "64" } }
  • 云数据库 GeminiDB授权项说明 表1 实例管理 权限 对应API接口 授权项(Action) IAM 项目(Project) 企业项目(Enterprise Project) 创建数据库实例 POST /v3/{project_id}/instances nosql:instance:create √ √ 删除数据库实例 DELETE /v3/{project_id}/instances/{instance_id} nosql:instance:delete √ √ 查询数据库实例列表 GET /v3/{project_id}/instances?id={id}&name={name}&mode={mode}&datastore_type={datastore_type}&vpc_id={vpc_id}&subnet_id={subnet_id}&offset={offset}&limit={limit} nosql:instance:list √ √ 扩容实例存储容量 POST /v3/{project_id}/instances/{instance_id}/extend-volume nosql:instance:modifyStorageSize √ √ 扩容集群实例的节点数量 POST /v3/{project_id}/instances/{instance_id}/enlarge-node nosql:instance:extendNode √ √ 缩容集群实例的节点数量 POST /v3/{project_id}/instances/{instance_id}/reduce-node nosql:instance:reduceNode √ √ 变更实例规格 PUT /v3/{project_id}/instances/{instance_id}/resize nosql:instance:modifySpecification √ √ 修改实例管理员密码 PUT /v3/{project_id}/instances/{instance_id}/password nosql:instance:modifyPasswd √ √ 修改实例名称 PUT /v3/{project_id}/instances/{instance_id}/name nosql:instance:rename √ √ 变更实例安全组 PUT /v3/{project_id}/instances/{instance_id}/security-group nosql:instance:modifySecurityGroup √ √ 数据库补丁升级 POST /v3/{project_id}/instances/{instance_id}/db-upgrade nosql:instance:upgradeDatabaseVersion √ √ 批量数据库补丁升级 /v3/{projectId}/instances/db-upgrade nosql:instance:batchUpgradeDatabaseVersion √ √ 创建冷数据存储 POST /v3/{project_id}/instances/{instance_id}/cold-volume nosql:instance:modifyStorageSize √ √ 扩容冷数据存储 PUT /v3/{project_id}/instances/{instance_id}/cold-volume nosql:instance:modifyStorageSize √ √ 绑定/解绑弹性公网IP POST /v3/{project_id}/instances/{instance_id}/nodes/{node_id}/public-ip nosql:instance:bindPublicIp √ √ 切换SSL开关 POST /v3/{project_id}/instances/{instance_id}/ssl-option nosql:instance:switchSSL √ √ 重启数据库实例 POST /v3/{project_id}/instances/{instance_id}/restart nosql:instance:restart √ √ 设置磁盘自动扩容策略 PUT /v3/{project_id}/instances/disk-auto-expansion nosql:instance:modifyStorageSize √ √ 修改高危命令 PUT /v3/{projectId}/instances/{instanceId}/high-risk-commands nosql:instances:modifyHighRiskCommands √ √ 设置实例可维护时间段 PUT /v3/{project_id}/instances/{instance_id}/maintenance-window nosql:instance:modifyMaintenanceWindow √ √ 获取GeminiDB Redis的免密配置 Get /v3/{project_id}/instances/{instance_id}/passwordless-config nosql:instance:getPasswordlessConfig √ √ 支持修改GeminiDB Redis的免密配置 PUT /v3/{project_id}/instances/{instance_id}/passwordless-config nosql:instance:setPasswordlessConfig √ √ 表2 备份与恢复 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 查询自动备份策略 GET /v3.1/{project_id}/instances/{instance_id}/backups/policy nosql:backup:list √ √ 设置自动备份策略 PUT /v3/{project_id}/instances/{instance_id}/backups/policy nosql:instance:modifyBackupPolicy √ √ 查询可恢复的实例列表 GET /v3/{project_id}/backups/{backup_id}/restorable-instances nosql:instance:list √ √ 查询实例可恢复的时间段 GET /v3/{project_id}/instances/{instance_id}/backups/restorable-time-periods nosql:backup:list √ √ 创建手动备份 POST /v3/{project_id}/instances/{instance_id}/backups nosql:backup:create √ √ 删除手动备份 DELETE /v3/{project_id}/backups/{backup_id} nosql:backup:delete √ √ 恢复到已有实例 POST /v3/{project_id}/instances/{instance_id}/recovery nosql:backup:refreshInstanceFromBacku √ √ 表3 参数模板管理 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 获取参数模板列表 GET /v3/{project_id}/configurations nosql:param:list √ √ 创建参数模板 POST /v3/{project_id}/configurations nosql:param:create √ √ 修改参数模板的参数 PUT /v3.1/{project_id}/instances/{instance_id}/configurations nosql:param:modify √ √ 应用参数模板 PUT /v3.1/{project_id}/configurations/{config_id}/apply nosql:instance:modifyParameter √ √ 修改指定实例的参数 PUT /v3/{project_id}/instances/{instance_id}/configurations nosql:instance:modifyParameter √ √ 获取指定实例的参数 GET /v3/{project_id}/instances/{instance_id}/configurations nosql:param:list √ √ 获取指定参数模板的参数 GET /v3/{project_id}/configurations/{config_id} nosql:param:list √ √ 删除参数模板 DELETE /v3/{project_id}/configurations/{config_id} nosql:param:delete √ √ 查询参数模板可应用的实例列表 GET /v3/{project_id}/configurations/{config_id}/applicable-instances nosql:instance:list √ √ 查询实例参数的修改历史 GET /v3/{project_id}/instances/{instance_id}/configuration-histories nosql:param:list √ √ 查询参数模板应用历史 GET /v3/{project_id}/configurations/{config_id}/applied-histories nosql:param:list √ √ 表4 标签管理 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 查询资源实例 POST /v3/{project_id}/instances/resource_instances/action nosql:instance:list nosql:tag:list √ √ 批量添加或删除资源标签 POST /v3/{project_id}/instances/{instance_id}/tags/action nosql:instance:tag √ √ 查询资源标签 GET /v3/{project_id}/instances/{instance_id}/tags nosql:instance:list nosql:tag:list √ √ 表5 日志管理 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 查询数据库慢日志 GET /v3/{project_id}/instances/{instance_id}/slowlog?start_date={start_date}&end_date={end_date} nosql:instance:list √ √ 表6 配额管理 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 查询配额 GET /v3/{project_id}/quotas nosql:instance:list √ √ 表7 容灾管理 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 查询实例可搭建双活关系的Region GET /v3/{project_id}/instances/{instance_id}/disaster-recovery/regions nosql:instance:list √ √ 表8 任务管理 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 查询实例可维护时间段 GET /v3/{project_id}/instances/{instance_id}/ops-window nosql:instance:maintenanceWindow √ √ 取消定时任务 DELETE /v3/{project_id}/scheduled-jobs/{job_id} nosql:instance:cancleScheduleJob √ √ 查询定时任务列表 GET /v3/{projectId}/scheduled-jobs nosql:task:list √ √ “√”表示支持,“x”表示暂不支持。 父主题: 权限策略和授权项
  • 请求示例 URI样例 PUT https://gaussdb-nosql.cn-north-7.myhuaweicloud.com/v3/054e292c9880d4992f02c0196d3ea468/instances/392850e624504e1490901d50b585a60din06/configurations 修改指定实例的参数 { "values" : { "request_timeout_in_ms" : "10000" } }
  • 应用场景 多租户是数据库用户的常用功能。例如,企业中有两个业务部门A和B,都需要使用Redis来存储各自的数据,如果不使用多租户权限功能,那么A和B的数据就会混在一起,这样就会存在数据泄露和误操作的风险。使用了多租户管理功能后,就可以将A和B的数据分别存储在不同的Redis实例或DB中,并且对这些实例或DB进行权限控制,从而保障数据的安全性和可靠性。 在数据库领域,多租户技术往往有一些标准属性:比如读写权限控制、跨DB鉴权隔离等。而GeminiDB Redis实例就具备完善的多租户管理技术,实现了读写权限控制和数据库(DB)隔离这两大特性的完美融合。
  • 方案优势 关于权限控制,开源Redis虽然在新版本有权限控制列表(Acess Control List,简称ACL),但只能设置为只读、读写权限,每个账号还是可以看到所有的DB,这个设计跟数据库多租户的原理背道而驰。例如,业务开发小王应该用DB1,但有天不小心清库了小张的DB0,导致发生生产事故。而GeminiDB Redis的权限隔离就可以解决此问题,如小王被设置为只有DB1的权限而没有DB2的权限,那么即使误操作也不会对DB0的数据产生影响。 此外,开源Redis的多租户功能只有单机才可以使用,一旦业务量增加需要集群,多DB功能反而就不可用了,只剩一个DB0。GeminiDB Redis基于自身的集群架构做了多DB增强,支持DB 1000+,同时可创建200+个ACL子账号,满足多种业务场景的需要。 表1 开源Redis和GeminiDB Redis所具备的权限管理能力比较 Redis产品 是否支持账户读写权限控制 是否支持账户权限隔离 多DB是否支持集群 可支持DB数量 开源Redis 支持 支持 不支持 默认16 GeminiDB Redis 支持 支持 支持 默认1000
  • 企业级特性介绍 GeminiDB Redis接口基于云原生分布式架构,实现了计算与存储分离,完全兼容社区版Redis7.0、6.2(包含6.2.x)、5.0及以下版本,提供了更多的企业级特性。 资源独享,分片不限流 计算节点部署在独享容器,租户隔离,稳定性高。面对高并发流量,节点不被限流。 内置独享型负载均衡器,转发性能和稳定性更高。 计算节点支持绑定公网IP,方便用户迁移上云和远程调试。 秒级弹性伸缩,轻松应对业务峰谷 支持存储和计算各自独立伸缩。单实例最大支持千万级QPS和36TB容量。 数据量增长场景,容量的扩容只需一键即可秒级完成,业务应用无感知。 业务量突增的场景(比如游戏、电商的活动期间,临时有更高的QPS诉求),可通过增加节点和提升规格两种方式进行扩容,后续可轻松缩容,对业务的影响仅为秒级连接重连。 一库替代多库,简化业务架构 基于高性能存储池,实例自动加载高频访问的热数据在计算节点的内存中,内部自动完成冷热数据交换,业务优先从内存中读取热数据,兼顾数据的高可靠和低时延。 GeminiDB Redis接口适合存储持续增长的重要业务数据(比如游戏玩家数据、用户画像、行为日志、文章资讯等),相比使用Redis+MySQL的架构场景,架构更简洁、数据存储更可靠,同时还具备更高的综合性能和性价比。 支持3AZ部署 3AZ实例支持将计算和存储资源都会均匀分布在3个可用区,部署规则严格遵循反亲和组,实例具备超高可靠性。 支持故障节点秒级接管,在独有的存算分离架构下,即使发生N-1节点同时故障的极端场景,依然可以秒级恢复业务访问,超高可用。 账号管理,支持DB级权限控制 支持使用65536个DB,支持创建200个子账号。 用户不但可以为子账号设置只读或读写权限,还可为子账号配置可访问的DB列表,从根本上避免多租户之间数据误操作风险。 支持为Hash key的Field单独设置过期时间 开源Redis只支持为Hash key整体设置过期时间。GeminiDB Redis接口新增了一组hash命令,这一新功能让用户可以为一个Hash key中的指定Field单独设置过期时间,将业务层面的淘汰逻辑下沉到数据库中实施,简化业务架构。 exHash最佳实践详见GeminiDB Redis广告频控业务exHash方案。 数据强一致,不会发生脏读 开源Redis采用异步复制,数据副本间弱一致。在计数器、限流器、分布式锁等常见业务场景中,会带来脏读隐患,可能会导致业务逻辑错乱。 GeminiDB Redis接口将数据副本下沉到高性能存储池中,一旦写入成功,将保障数据3副本强一致存储,后续业务访问不会发生脏读。 增强版事务功能 支持事务功能,即MULTI/EXEC。相比开源Redis的伪事务,GeminiDB Redis接口实现了真事务,即支持ACID,在底层实现了对回滚的支持,满足了事务的原子性。 增强版前缀扫描 当用户对实例执行Scan类扫描命令时,如指定前缀匹配(match prefix*),则此时的扫描性能将远远超越开源Redis。这是因为GeminiDB Redis接口将该场景下达命令复杂度优化到了O(logN + M),其中N是整体数据量,M是匹配的数据量。而开源Redis的扫描复杂度则是更慢的O(N)。 父主题: 产品介绍
  • 应用场景 广告投放是企业宣传营销不可或缺的一部分。尤其是在新媒体发展白热化的当下,不仅广告渠道多样化,投放模式也更细节化和个性化。 随着客户广告投放产出比意识的加强,以短视频平台为例,在投放目标选择上,广告主通常需要通过配置年龄、性别、学历等规则,才能将广告投放给满足标签的受众。广告投放中这一灵活性不足的限制,常常会让广告主难以抉择,导致投放效果不佳。广告主企业往往每年需花费数亿甚至数十亿广告费,却依然难以准确触达目标用户,造成大量资金浪费。那该如何解决“让广告主对每一条广告请求,有投递或者拒绝的自主权”这一问题,广告RTA应运而生! RTA(Realtime API),是一种用于满足广告主实时、个性化的投放需求的技术手段。
  • 业务挑战 广告主的RTA系统,是从核心的画像数据库读取数据并进行投放决策的,数据越新,投放效果越好。因此,大数据平台生成的最新数据,需要及时写入画像数据库。综合来看,广告RTA业务面临高并发、超低时延、超大数据量等实际特性需求。因此,对核心画像数据库有如下诉求: 海量数据快速导入,确保决策精准性 需要定期将成百GB甚至数TB全量画像数据导入画像数据库;全量数据导入越快,模型越精准,广告投放效果越好。 承载高并发访问 RTA系统要承接大量的实时竞价请求。以电商、金融客户的RTA系统为例,日常数据库QPS在几十万到数百万之间。 保持稳定的低时延 媒体侧要求广告主在40-100ms内返回决策结果,数据库需要在个位数毫秒内执行完请求。 降低业务成本 为了追求极致的性能体验,RTA业务通常使用开源自建Redis,然而TB级别数据存储成本非常昂贵,成本也是广告主选型的重要考虑因素。 在广告RTA中,通常选用以下数据库作为画像数据库: MySQL:难以满足数十万至百万QPS并发和低时延的要求。 MongoDB/Hbase:可以存储TB级数据,成本便宜,但无法满足稳定低时延诉求,超时率高,容易导致停投,影响商业利益。 内存数据库:能提供高并发、低时延极致性能,如开源自建Redis,是业界选用比较多的方案。但存在着稳定性差,数据丢失等风险。对于TB级用户画像数据,存在导入速断慢和成本高的痛点。 而云数据库GeminiDB Redis接口完全具备稳定低时延、高性价比、FastLoad离线数据极速导入等核心能力。
  • 方案优势 FastLoad极速数据导入,效率提升5-10倍 传统数据库只能通过标准协议逐条写入数据,先经过计算层复杂结算,再写入存储层。因此,大数据平台定期导入的数百GB乃至数TB的画像数据,通常需要数小时或者数天,且对在线业务影响比较大。 GeminiDB Redis提供的FastLoad企业级特性,依托RTA业务场景大数据平台的高并发处理能力和自身存储引擎的数据编排能力,将海量数据通过专属高速持久化通道直接传入存储引擎,数据导入速度提升5-10倍,并降低对在线业务的影响。 提供百万级并发和亚毫秒级延迟,无惧业务洪峰 云数据库 GeminiDB Redis采用存储计算分离架构,通过分布式高性能存储池实现三副本、强一致的数据存储,所有节点高效读/写访问,支持算力水平和垂直扩展,能够轻松应对业务规模和数据量的爆炸式增长。 通过采用多线程架构和高性能存储池,配合内存数据结构和访问算法的深度优化,GeminiDB Redis能够实现亚毫秒级的数据请求响应。这种超低时延的性能,对需要实时数据处理和分析的应用场景,如在线游戏、金融科技、广告系统和实时推荐系统,提供了强大的数据支持。因此,GeminiDB Redis成为处理大规模实时交互和高频交易等场景的理想选择。 根据现网的案例经验,在百万+QPS流量下,GeminiDB可稳定保持平均时延1ms,p99时延2ms。 高效数据压缩存储,效率与成本并行 GeminiDB Redis使用“逻辑数据+块数据”双重压缩机制,在不影响性能的前提下,大幅度降低数据的存储占用。同时,采用存储计算分离架构,将算力和数据存储解耦,支持独立弹性扩展。可以使企业以更低的成本存储更多的数据,极大地优化资源利用效率,降低整体的使用成本。 根据现网案例经验,GeminiDB Redis的数据压缩比通常为4:1,即实际12TB数据,在GeminiDB Redis中仅占用3TB左右的存储空间。
  • Go-redis package main import ( "context" "fmt" "time" "github.com/redis/go-redis/v9" ) var ctx = context.Background() func main() { client := redis.NewClient(&redis.Options{ Addr: "localhost:6379", Password: "", // no password set DB: 0, // use default DB MaxRetries: 3, // set max retry times MinRetryBackoff: time.Duration(1) * time.Second, // set retry interval MaxRetryBackoff: time.Duration(2) * time.Second, // set retry interval }) // Execute command err := client.Set(ctx, "key", "value", 0).Err() if err != nil { panic(err) } // Test pong, err := client.Ping(ctx).Result() if err != nil { fmt.Println("Failed:", err) return } fmt.Println("Success:", pong) }