云服务器内容精选

  • Redis的Arm和x86实例有什么差异? 当前华为云DCS Redis实例的CPU架构支持Arm计算和x86计算。Arm Redis和x86的Redis两者功能是一样的。对客户端使用来说完全一样,没有额外的适配工作量。 可能在部分复杂的命令,大key且命令复杂度超过O(N)场景下,x86 Redis单CPU能力会强于Arm Redis。 综合来看,Arm Redis和x86 Redis能力和性能相当,都能满足业务需求,Arm Redis价格略低,请根据需要进行选择。 部分Region已停售“Arm计算”类型,推荐使用“x86计算”类型。 父主题: 实例类型/版本
  • 版本差异 DCS在创建实例时,Redis可选择“版本号”、“实例类型”。 DCS Redis 3.0已下线,暂停售卖,建议使用Redis 4.0/5.0/6.0。 版本号 版本号共有3.0,4.0,5.0,6.0版本可以选择,它们的区别如表1。更多Redis 4.0和Redis 5.0的特性,请参考Redis4.0新特性介绍“”和Redis5.0新特性介绍章节。 表1 不同版本支持的特性、性能差异说明 比较项 Redis 3.0 Redis 4.0 & Redis 5.0 Redis 6.0 兼容开源版本 Redis 3.0兼容开源3.0.7版本 Redis 4.0兼容开源4.0.14版本,Redis 5.0兼容开源5.0.14版本 说明: 2022年2月之前创建的Redis 5.0实例,兼容开源5.0.9版本。 开源版本查询可以参考如何查询Redis实例的原生版本。 如果需要兼容5.0.14版本的Redis,请重新创建实例。目前不支持Redis升级。 Redis 6.0基础版兼容开源6.2.7版本 Redis 6.0企业版兼容开源KeyDB 6.0.16版本 实例部署模式 采用虚机部署 在物理机上容器化部署 在物理机上容器化部署 CPU架构 支持x86 支持x86 支持X86 创建实例耗时 3~15分钟,集群约10~30分钟 约8秒 约8秒 QPS 单节点约10万QPS 单节点约10万QPS 基础版单节点约15万QPS 企业版单节点约40万QPS 公网访问 支持 暂不支持 暂不支持 域名连接 支持VPC内使用域名连接 支持VPC内使用域名连接 支持VPC内使用域名连接 可视化数据管理 不支持 提供Web CLI访问Redis,管理数据 提供Web CLI访问Redis,管理数据 实例类型 支持单机、主备、Proxy集群 支持单机、主备、Proxy集群、Cluster集群 基础版支持单机、主备、Cluster集群 企业版暂只支持主备 实例规格 提供2G、4G、8G直至1024G多种规格 提供2G、4G、8G直至1024G多种规格,同时单机主备还支持128MB、256MB、512MB、1GB四种小规格实例 提供4G、8G、16G、32G、64G多种规格,同时单机主备还支持128MB、256MB、512MB、1GB四种小规格实例 扩容/缩容 支持在线扩容和缩容 支持在线扩容和缩容 支持在线扩容和缩容 备份恢复 主备和Proxy集群实例支持 主备、Proxy集群和Cluster集群实例支持 主备 由于Redis不同版本的底层架构不一样,在创建Redis实例时,确定Redis版本后,将不能修改,如Redis 3.0暂不支持升级到Redis 4.0或者Redis 5.0。如果需要由低版本升级到高版本,建议重新购买高版本实例,然后进行数据迁移。 实例类型 Redis实例类型分为单机、主备、Proxy集群、Cluster集群,它们的架构与应用场景,请参考实例类型章节。 父主题: 实例类型/版本
  • Lazy free机制 解决的痛点/问题 Redis是单线程程序,当运行一个耗时较大的请求时,会导致所有请求排队等待,在请求处理完成前,Redis不能响应其他请求,因此容易引发性能问题。而Redis删除大的集合键时,就属于一种比较耗时的请求。 原理 Redis 4.0提供的一种惰性删除或者说延迟释放机制,主要用于解决删除大key对Redis进程的阻塞,从而避免带来性能与可用性问题。 删除key时,Redis异步延时释放key的内存,把key释放操作放在bio(Background I/O)单独的子线程处理中。 使用方法 主动删除 unlink unlink与del命令目的一样,删除某个key。unlink在删除集合类键时,如果集合键的元素个数大于64个,会把内存释放操作,给单独的bio(Background I/O)线程来执行。因此unlink删除操作能在非常短的时间内完成包含上百万个元素的大key删除。 flushall/flushdb 通过对flushall/flushdb添加ASYNC异步清理选项,Redis在清理整个实例或单个DB时,操作都是异步的。 过期key删除、大key驱逐删除 被动删除有四种场景,每种场景对应一个配置参数,默认都是关闭: lazyfree-lazy-eviction no //针对redis内存使用达到maxmeory,并设置有淘汰策略时,是否采用lazy free机制lazyfree-lazy-expire no //针对设置有TTL的键,过期后,被redis清理删除时是否采用lazy free机制lazyfree-lazy-server-del no //针对有些指令在处理已存在的键时,会带有一个隐式的DEL键的操作slave-lazy-flush no //针对slave进行全量数据同步,slave在加载master的RDB文件前,会运行flushall来清理自己的数据场景