云服务器内容精选

  • 实例规格说明 本章节主要介绍GeminiDB Redis实例支持的实例规格信息。数据库实例规格与所选的CPU机型相关,请以实际环境为准。 GeminiDB Redis实现了数据冷热交换,支持远超内存的容量。热数据在内存中,全量数据存放在高性能存储池中。实例总容量指的是存储总容量,决定数据存储上限。节点内存请参考表4节点规格信息。 表1 GeminiDB Redis集群版(快速选择)实例规格 实例类型 实例存储容量(GB) 节点数量 节点规格码 vCPU(个) QPS 最大连接数 实例DB数 ACL子账号数量 集群版 4 2 geminidb.redis.medium.2 1 20,000 20,000 256 200 8 2 geminidb.redis.medium.4 1 20,000 20,000 256 200 16 2 geminidb.redis.large.4 2 40,000 20,000 256 200 24 3 geminidb.redis.large.4 2 60,000 30,000 256 200 32 4 geminidb.redis.large.4 2 80,000 40,000 256 200 48 3 geminidb.redis.xlarge.4 4 120,000 30,000 1,000 200 64 4 geminidb.redis.xlarge.4 4 160,000 40,000 1,000 200 96 3 geminidb.redis.2xlarge.4 8 240,000 30,000 1,000 200 128 4 geminidb.redis.2xlarge.4 8 320,000 40,000 1,000 200 192 6 geminidb.redis.2xlarge.4 8 480,000 60,000 1,000 200 256 8 geminidb.redis.2xlarge.4 8 640,000 80,000 1,000 200 384 10 geminidb.redis.2xlarge.4 8 800,000 100,000 1,000 200 512 6 geminidb.redis.4xlarge.4 16 960,000 60,000 1,000 200 768 9 geminidb.redis.4xlarge.4 16 1,440,000 90,000 1,000 200 1024 12 geminidb.redis.4xlarge.4 16 1,920,000 120,000 1,000 200 2048 22 geminidb.redis.4xlarge.4 16 3,520,000 220,000 1,000 200 4096 24 geminidb.redis.8xlarge.4 32 7,680,000 240,000 1,000 200 8192 36 geminidb.redis.8xlarge.4 32 11,520,000 360,000 1,000 200 表2 GeminiDB Redis主备版(快速选择)实例规格 实例类型 实例存储容量(GB) 分片数 节点规格码 QPS 最大连接数 实例DB数 ACL子账号数量 主备版 4 1 geminidb.redis.medium.2 8,000 10,000 1,000 200 8 1 geminidb.redis.medium.2 8,000 10,000 1,000 200 16 1 geminidb.redis.medium.4 10,000 10,000 1,000 200 24 1 geminidb.redis.large.4 20,000 10,000 1,000 200 32 1 geminidb.redis.large.4 20,000 1,0000 1,000 200 48 1 geminidb.redis.xlarge.4 40,000 2,0000 1,000 200 64 1 geminidb.redis.xlarge.4 40,000 2,0000 1,000 200 96 1 geminidb.redis.2xlarge.4 80,000 2,0000 1,000 200 128 1 geminidb.redis.4xlarge.4 160,000 2,0000 1,000 200 表3 GeminiDB Redis节点规格 节点规格码 vCPU(个) 内存(GB) 单节点的最大持久化数据存储空间(GB) 单节点的最大连接数 实例DB数 geminidb.redis.medium.2 1 2 4 10,000 256 geminidb.redis.large.2 2 4 8 10,000 256 geminidb.redis.xlarge.2 4 8 16 10,000 1,000 geminidb.redis.2xlarge.2 8 16 32 10,000 1,000 geminidb.redis.4xlarge.2 16 32 64 10,000 1,000 geminidb.redis.8xlarge.2 32 64 128 10,000 1,000 geminidb.redis.medium.4 1 4 8 10,000 256 geminidb.redis.large.4 2 8 16 10,000 256 geminidb.redis.xlarge.4 4 16 32 10,000 1,000 geminidb.redis.2xlarge.4 8 32 64 10,000 1,000 geminidb.redis.4xlarge.4 16 64 128 10,000 1,000 geminidb.redis.8xlarge.4 32 128 256 10,000 1,000 geminidb.redis.medium.8 1 8 16 10,000 256 geminidb.redis.large.8 2 16 32 10,000 256 geminidb.redis.xlarge.8 4 32 64 10,000 1,000 geminidb.redis.2xlarge.8 8 64 128 10,000 1,000 geminidb.redis.4xlarge.8 16 128 256 10,000 1,000 geminidb.redis.8xlarge.8 32 256 512 10,000 1,000 父主题: 产品介绍
  • GeminiDB运维管理命令 GeminiDB在社区Redis的INFO/CLIENT/SLOW LOG /MONITOR/CONFIG等运维管理命令能力基础上,提供全面服务化且高度易用的DBA运维能力。 表2 GeminiDB Redis接口运维功能介绍 GeminiDB运维功能 GeminiDB运维功能简介 社区Redis同类命令/能力 监控指标 提供命令级别QPS/平均时延/P99时延指标。提供丰富节点级指标以及实例级汇聚指标。 INFO 实例会话 展示客户端IP信息以及Top会话统计,支持一键批量Kill会话。 CLIENT 参数配置 展示慢日志及诊断信息。 CONFIG 慢日志 审计高危命令操作。 SLOWLOG 用户权限管理 支持账号管理功能 ACL (Access Control List) 审计日志 支持一键查询与修改内核参数。是社区Redis CONFIG命令的能力加强版。 MONITOR 实时大Key诊断 实时观测大Key信息,不影响业务。 不支持 实时热Key诊断 实时观测热Key情况,不影响业务。 不支持 实时前缀Key分析 实时观测前缀Key分布,不影响业务。 不支持 高危命令重命名 支持修改命令别名以及查看重命名记录。 通过手动修改配置文件实现 异常Key熔断 一键屏蔽指定Key,拒绝被业务访问。用于快速恢复。 不支持
  • GeminiDB高级命令 exHASH类型 使用场景:GeminiDB支持为Hash Key的每个Field设置过期时间,适用于构建频控、购物车等业务。 命令列表:请参考exHash命令列表。 使用方式:请参考广告频控业务exHash方案。 布隆过滤器(BloomFilter)类型 功能介绍:布隆过滤器(BloomFilter)可用于检索某个元素是否存在于某个海量集合中,适用于Web拦截器、防缓存穿透等场景。 命令列表:请参考布隆过滤器(Bloom Filter)介绍。 使用方式:请参考布隆过滤器(Bloom Filter)命令说明。
  • GeminiDB基础命令 针对社区Redis提供的全部命令类型,GeminiDB 5.0和6.2(包含6.2.x)兼容情况如下: 表1 GeminiDB Redis接口命令兼容度 Redis命令分类 命令详情 GeminiDB Redis 5.0兼容情况 GeminiDB Redis 6.2(包含6.2.x)兼容情况 GeminiDB Redis 7.0兼容情况 String String命令列表 100%兼容 100%兼容 暂不支持lcs命令 Hash Hash命令列表 100%兼容 100%兼容 100%兼容 List List命令列表 100%兼容 100%兼容 暂不支持blmpop命令 Sorted set Sorted set命令列表 100%兼容 100%兼容 暂不支持zmpop、bzmpop、zintercard命令 Set Set命令列表 100%兼容 100%兼容 100%兼容 Bitmap Bitmap命令列表 100%兼容 100%兼容 100%兼容 Stream Stream命令列表 100%兼容 暂不支持xgroup子命令createconsumer 暂不支持7.0特性 Geo Geo命令列表 100%兼容 100%兼容 100%兼容 Hyperloglog Hyperloglog命令列表 100%兼容 100%兼容 100%兼容 发布订阅(Pub/Sub) 发布订阅命令列表 100%兼容 100%兼容 暂不支持7.0特性 Lua脚本(Scripting) Lua脚本命令列表 100%兼容 100%兼容 暂不支持7.0特性 事务(Transactions) 事务命令列表 100%兼容 100%兼容 100%兼容 其他通用Key操作 其他通用Key操作 暂不支持2个命令: SWAPDB、MOVE 暂不支持2个命令: SWAPDB、MOVE 暂不支持7.0特性
  • 权限配置 如果您使用的是 IAM 子用户,在使用存储空间自动扩容功能前需要配置GeminiDB服务和IAM服务相应的权限。具体操作如下: 配置GeminiDB服务的“GeminiDB FullAccess”权限。 配置IAM服务的细粒度权限。 在IAM控制台配置如下IAM权限策略,具体操作请参见创建自定义策略。 如果采用JSON视图配置自定义策略,“策略内容”可参考如下: { "Version":"1.1", "Statement":[ { "Effect":"Allow", "Action":[ "iam:permissions:*", "iam:agencies:*", "iam:roles:*", "iam:quotas:*" ] } ] } 创建用户组并授权 您可以在IAM控制台创建用户组,并授予该用户组2中创建的自定义权限和Security Administrator系统角色。 将用户加入用户组 以主账号或者具有IAM权限的IAM子用户登录控制台,将需要设置存储空间自动扩容的实例所属的IAM子用户,加入3中创建的用户组,此时该IAM子用户享有该用户组配置的权限。
  • 数据导入 在导入任务结束后,修改导入配置文件。 解压importInflux.zip,解压完毕后进入到解压目录./importInflux/import /目录下,修改config.json配置文件,文件内容如下所示: { "ImportDir":"/root/stefan/stefan-AKC/data/", "ProcessorsNum":6, "ConnectDbPool":"xxx.xxx.xxx.xxx", "Ssl":false, "dropDatabases":"stefaninflux|stefaninflux1|prism" } ImportDir:导入数据的目录,即导出步骤中的导出目录,此处的目录必须为导出目录的绝对路径。 ProcessorsNum:总并发任务数。总并发任务数建议配置值区间范围[2,3x节点个数],即最小配置2个并发,最高配置为3x节点个数(节点个数是指GeminiDB Influx 实例的节点个数)。如参数ConnectDbPool 填写了三个节点IP,则并发最小值为2,最大值为3x3=9。 ConnectDbPool:为连接池IP,请填写GeminiDB Influx实例节点的IP,多个IP请用"|"分隔。 Ssl:请确认GeminiDB Influx实例SSL的开启状态,开启SSL则填写true,关闭填写false。 dropDatabases:配合导入任务deleteDb选项,表明导入前所要删除的数据库列表,多个数据库使用"|"分隔,如果不需要,请配置为""。 运行导入脚本。 修改导入配置文件完毕后,请进入到解压目录/importInflux/import/目录下: cd ./importInflux/import/ 运行如下命令执行导入任务: nohup ./import -host $host -username &username -password &password - deleteDb[Option] & $host 、$username 、$password分别对应实例IP地址、数据库账号以及对应账号的密码。如果密码存在特殊字符,如“!@” ,请插入转义字符\ 至特殊字符前。 deleteDb为可选项,若在导入前不删除DB,请不要输入此选项。 导入任务执行日志。 导入日志会记录在解压目录./importInflux/import下,如果存在导出异常,请收集该目录下导出日志。 导入任务重试。 若需要重新执行任务,请将解压目录./importInflux/import/data目录删除。若不删除,则会从上一次失败/未完成的任务继续导入。 rm -rf ./importInflux/import/data 验证。 导入完成后,进行数据完整性验证,可抽样对比源端数据以及目标端数据,查看是否一致。
  • 数据导出 导出准备。 运行迁移工具,将准备好的tsm以及wal文件解析,并转化为lineProtocol文件以供导入。 由于GeminiDB Influx压缩率较高,请按照实际GeminiDB Influx tsm文件目录以及 wal文件目录磁盘空间总和30倍的大小在导出E CS 上预留磁盘空间。 修改导出配置文件。 请创建导出目录,解压压缩包cvtLocDataTool_all.tar至导出目录下,并修改导出目录./cvtLocDataTool/config/toolcfg.json文件,文件模板内容如下: { "orgData" : "./sample_data", "expBeginTime" : "2021-03-27T08:00:00+08:00", "expEndTime" : "2021-03-27T20:00:00+08:00", "mutilProc" : true, "Concurrent Number" : 12, "openDebugLog" : false, "ignoreDBs" : "_internal|myfirstdb" } orgData:表示GeminiDB Influx wal以及tsm文件存放目录。请整理tsm以及wal文件目录,并确保tsm文件目录如下:xxx/data/[Database name]/[RP name] /[shard Id]/xxxx.tsm,wal文件目录如下:xxx/wal/[Database name]/[RP name] /[shard Id]/xxxx.wal。 expBeginTime: 表示迁移导出数据的起始时间(GMT+08:00),"" 空表示不需要指定开始时间。 expEndTime:表示迁移导出数据的结束时间(GMT+08:00),"" 空表示不需要指定结束时间。 mutilProc:表示是否开启多进程,请保证该参数为true。 Concurrent Number:表示并发数,并发数与运行的ECS性能有关,建议:16U64GB建议配置为8,32U128GB建议配置为12。 openDebugLog: 打印debug日志开关,用于测试,请保证该参数为false。 ignoreDBs:表示不需要导出的DB列表,多个DB使用"|"分隔,默认请填写"_internal"。 运行导出脚本。 修改完毕后,执行如下命令运行导出脚本: nohup python cvtAllData.py & 可执行如下命令查看任务是否结束: ps -ef|grep cvtAllData.py|grep -v grep 脚本运行结束后,导出文件会存放于cvtLocDataTool/rstData/Output/目录下。
  • 迁移原理 通过迁移工具解析社区版InfluxDB的tsm以及wal文件写入到行协议(Line Protocal)文件中,最终将行协议文件数据解析并迁移至目标端。 整个迁移过程分为导出和导入阶段两个阶段。 导出阶段会并发解析社区版InfluxDB的tsm以及wal文件,并将解析数据写入到行协议文件中。 导入阶段会并发读取行协议文件,将读取数据发送至GeminiDB Influx集群各节点上。 迁移工具支持全量迁移和增量迁移,具体可在配置文件中配置。
  • 连接方式介绍 GeminiDB Redis兼容开源Redis接口,支持应用程序使用多种SDK访问。同时还提供控制台、内网、公网的访问途径。 表1 连接方式 连接方式 使用场景 说明 控制台连接 GeminiDB Redis支持通过管理控制台的Web客户端连接Redis实例 - 内网连接 介绍通过内网IP、内网 域名 或负载均衡地址连接GeminiDB Redis实例的方法。 该方式适用于当应用部署在弹性云服务器上,且该弹性云服务器与数据库实例处于同一区域、同一VPC内时连接数据库实例。 推荐使用负载均衡地址或内网域名的方式,可靠性高,可消除单点故障影响。 安全性高,可实现数据库实例的较好性能。 公网连接 介绍通过公网域名、弹性公网IP或负载均衡器绑定弹性公网IP连接GeminiDB Redis实例的方法。 该方式适用于不能通过内网方式访问数据库实例时,可以单独使用公网域名或弹性公网IP连接弹性云服务器(或公网主机)与数据库实例。 为了获得更快的传输速率和更高的安全性,建议您将应用迁移到与您的数据库实例在同一VPC子网内,使用内网连接。 推荐负载均衡器绑定弹性公网IP的方式,可靠性高,可消除单点故障影响。 用户需要购买弹性公网IP,请参见弹性公网IP计费说明。 客户端连接 介绍通过不同代码的方式访问GeminiDB Redis实例的方法,详情请参见客户端通过代码连接实例示例。 - 父主题: 步骤二:连接实例
  • 使用须知 目标实例必须与弹性云服务器在同一个虚拟私有云和子网内才能访问。 弹性云服务器必须处于目标实例所属安全组允许访问的范围内。 场景一:如果目标实例所属安全组为默认安全组, 则无需设置安全组规则。 场景二:如果目标实例所属安全组非默认安全组,请查看安全组规则是否允许该弹性云服务器访问。 如果安全组规则允许弹性云服务器访问,即可连接实例。 如果安全组规则不允许弹性云服务器访问,需要在实例安全组添加一条“入”的访问规则。 设置安全组的具体操作请参考配置安全组规则。
  • 使用须知 实例状态为“正常”、“异常”、“恢复检查中”,支持重启实例。 重启实例后,该实例下所有节点将会被重启。 重启实例会导致服务中断,请谨慎操作。请在业务低峰期重启,重启前请做好业务安排并确保应用有重连机制。 开启操作保护的用户,在进行敏感操作时,通过进行二次认证再次确认您的身份,进一步提高账号安全性,有效保护您安全使用云产品。关于如何开启操作保护,具体请参考《 统一身份认证 服务用户指南》的内容。
  • 权限配置 使用IAM(统一身份认证)的用户,需要给对应的子用户授予DAS FullAccess权限,否则子用户无法正常使用该功能。具体授权的操作请参见创建用户并授权。 同时您也可以通过创建自定义策略的方式来限制有权限的数据库类型,具体操作如下: 登录统一身份认证服务页面,单击“创建自定义策略”。 图1 创建自定义策略 设置策略名称、策略配置方式、策略内容等信息。 图2 配置自定义策略 表1 自定义策略信息 参数名称 描述 策略名称 输入策略名称。 策略配置方式 此处选择“JSON视图”。 策略内容 在策略内容中配置如下自定义策略: { "Version": "1.1", "Statement": [ { "Action": [ "das:*:*", "nosql:instance:list" ], "Effect": "Allow" } ] } 或者您也可以在“策略内容”区域,单击“从已有策略复制”,选择“DAS FullAccess”作为模板,然后只保留对应的DB类型就可以指定权限的范围,此处只需要保留“nosql:instance:list”即可。 策略描述 输入策略描述。 作用范围 默认项目级服务 单击“确定”,返回权限页面,可以查看到创建成功的自定义策略。 图3 查看自定义策略 创建用户组。 图4 创建用户组 为4创建的用户组授权3已创建好的自定义策略。 图5 授权自定义策略 图6 选择自定义策略 单击用户组名称,进入用户组管理,添加对应的子用户即可。 图7 添加子用户
  • 方案总览 PITR(Point-in-Time Recovery),是指数据库的“时间点恢复”功能。它是一种数据库恢复技术,通常用于恢复误删除的数据或者误操作导致损坏的数据,将其恢复到一个指定时间点的数据状态。 以游戏场景为例,在游戏运行期间,有玩家利用游戏漏洞复制装备、货币,使游戏公平性遭到破坏。传统数据库备份频率一般是一天全备一次,备份间隔即一整天,不仅恢复时间长、时间粒度大,甚至无法恢复到想要时间点等。而GeminiDB Redis接口新增的PITR特性能够让游戏数据快速回档,可根据客户自定的备份粒度,最低支持5分钟粒度,自行选择需要恢复的时间点,实现数据的快速恢复。
  • 方案优势 GeminiDB Redis接口的PITR技术执行数据快照业务无感,通常可在5分钟以内恢复到指定时间点,尤其是在业务异常时可以快速回退,降低损失,有效解决传统备份方案时间长、可恢复时间粒度大等痛点问题。因此,GeminiDB Redis接口在游戏、金融等行业有着广泛应用。 备份任务无感,业务更平稳 GeminiDB Redis接口的PITR功能不涉及数据的拷贝,备份任务业务无感知,不影响数据访问,让客户业务更加平稳。 GeminiDB Redis接口快照原理是通过记录文件系统的状态来实现的,是瞬时生成,而不是通过复制文件本身来实现的。快照存储当前时刻的底层数据的元数据信息,比如数据块信息、寻址信息等,形成快照。因此,当打数据快照时,业务可以继续运行,而不会受到任何影响。 支持分钟级快速恢复,恢复时长与数据大小无关 PITR数据快照文件可以在本地保存,不用上传到冷存储介质,因此,不涉及数据的拷贝搬迁,还可支持随时数据恢复。 PITR恢复,数据恢复时长与数据大小无关,能快速恢复数百GB数据,通常可在5分钟以内恢复数据,保证客户业务可靠性。除此以外,PITR还可多次前后恢复,恢复到指定时间点后,既可向前,也可向后,让客户使用更省心。 比开源Redis数据备份性能更优 开源Redis使用多进程写时复制机制来实现快照的持久化。在持久化过程中,调用fork()产生一个子进程,fork()会阻塞Redis长达数百毫秒,对业务产生抖动。fork()的写时复制技术(COW)会造成内存过度使用,如果fork()期间产生大量的写操作,会导致内存严重浪费甚至OOM,通常内存利用率不足50%。而GeminiDB Redis接口的PITR特性不涉及数据的拷贝搬迁,因此对业务基本无影响,且具有快照速度快、数据稳定、安全等特点。
  • 功能概述 PITR(Point-in-Time Recovery),是指数据库的“时间点恢复”功能。它是一种数据库恢复技术,通常用于恢复误删除的数据或者误操作导致损坏的数据,将其恢复到一个指定时间点的数据状态。 以游戏场景为例,在游戏运行期间,有玩家利用游戏漏洞复制装备、货币,使游戏公平性遭到破坏。传统数据库备份频率一般是一天全备一次,备份间隔即一整天,不仅恢复时间长、时间粒度大,甚至无法恢复到想要时间点等。而GeminiDB Redis接口具备的PITR特性能够让游戏数据快速回档,可根据客户自定的备份粒度,最低支持5分钟粒度,自行选择需要恢复的时间点,实现数据的快速恢复。