公司简介
微拍堂隶属于杭州微拍堂文化创意有限公司,成立于2014年,2015年上线,总部位于中国杭州,是国内领先的文玩艺术品电商平台。微拍堂开创了文玩艺术品直播竞拍全新商业模式,实现了文玩竞拍行业线上化。经过8年多发展,微拍堂的业务占比稳居行业之首。
项目背景
目前,微拍堂文玩艺术品电商平台业务量持续增长,聚焦超1亿精准用户终端,入驻商家超33万。终端用户数据更新并不频繁但经常被访问、需长期保留,常用于消息推送业务,数据规模高达 1.5 TB。微拍堂自研一套缓存+存储的数据库 Hades 存储用户终端设备信息。其集群架构如下图所示:
hades-CLB:腾讯云负载均衡,作为客户端访问的主入口,将业务流量分发至后端服务。
hades-proxy:兼容20余种 Redis 协议命令及数据结构,对外提供类 Redis 服务;作为数据传输层,从 hades-MySQL 中读取设备数据,返回给客户端。
hades-MySQL:数据存储层,以分表的方式进行分布式部署,存储设备信息。

方案分析
Hades 采用缓存 + 存储的双 DB 架构,数据持久化于 MySQL 中,无论是在性能,还是开发效率提升上,该存储方案还需持续的维护、升级及优化。
MySQL 写入性能将直接影响整体方案上限,如:部分业务场景存在对 zset 类型的
zrangebyscore key limit offset操作,即使底层 MySQL 使用优化后的深度查询来实现,依然达到性能瓶颈。全量数据存储在 MySQL 数据库,如果查询请求在缓存 hades-proxy 没有命中,则需从 MySQL 读取数据到 hades-proxy。并且,存储的终端设备信息,Field 较多,Hash Key 较大,业务读取少量 Field 时,仍需要将整个大 Key 读取到 hades-proxy 中,而 hades-proxy 空间有限,读取后又需要将整个大 Key 驱逐到 MySQL,缓存与存储频繁的交互,造成网络、磁盘 IO 开销巨大。
针对大 Key,为不影响产品性能,需要将大 Key 拆分成一个一个小 Key,不同类型的 Value 拆分的方式也存在差异,不论是根据数据规模拆分,还是依据压缩算法或序列化的方法,实现上均存在一定程度的复杂性。
2022年 9月,腾讯云发布了全新非关系型数据库 KeeWiDB,搭载 Hash 存储引擎,兼容 Redis 协议,在键值场景可提供极致性能和持久化能力。其一体化的数据库集群架构与微拍堂自研的 Hades 数据库架构非常相似,可替换 Redis + 存储的双 DB 存储方案。而且可避免出现缓存一致性、缓存雪崩、缓存击穿的问题。

经过对 KeeWiDB 反复调研,进行 POC 测试、功能体验、性能分析,在资源成本接近的情况下,KeeWiDB 与 Hades 的对比分析如下:
对比项 | Hades 永久存储 | KeeWiDB 持久化存储 |
兼容性 | 兼容 Redis 4.0 集群架构 | 兼容 Redis 4.0 集群架构,包含 Hades 支持的所有命令集合。 |
成本 | 硬件资源:自行购买或租赁存储服务器,搭建高可用主从架构,容易造成资源冗余浪费。 人力成本:需自行开发监控系统,运维人员需半夜处理故障,运维成本高。 | 按需购买:购买腾讯云数据库实例,无需软硬件投入并提供多种规格选择,可以根据实际业务情况申请所需资源,使其资源利用率最大化。 免费管控:免费支持管控、备份、克隆、监控、告警等功能。 |
性能 | 时延:业务请求平均时延为十毫秒级。 吞吐:复杂数据类型的吞吐不足。 | 时延:业务请求平均时延为毫秒级。 吞吐:吞吐能力更强。 |
安全性 | 自行修复数据库安全漏洞。 | DDoS 攻击防护,自动修复各种数据库以及宿主机安全漏洞。 |
业务扩容 | 硬件采购、机房托管、应用重新部署等工作,周期较长。 | 一键式按需扩容,快速部署上线。 |
可靠性 | 自行保障,依赖硬件的故障发生率,依赖技术人员的数据库管理水平。 | 99.95%,拥有完善的数据自动备份和无损恢复机制,实时热备,7天内任意时刻数据可快速恢复。 |
业务割接 | - | 业务无需停服,仅需修改配置信息即可。 |
最终,基于成本及性能等诸多因素的考虑,微拍堂决定将 Hades 中存储的设备信息数据全部迁移至腾讯云 KeeWiDB 数据库,并对业务做无缝割接。

客户价值
Hades 所存储的数据已全部迁移至腾讯云 KeeWiDB,业务割接无任何影响,性能、成本、开发及维护效率均有极大提升。
成本
KeeWiDB 的资源成本相比 Hades 降低了20%,同时提供7天内的免费备份存储。
Hades 需安排专门的数据库管理人员进行维护与扩缩容,而 KeeWiDB 可在不影响业务的情况下,支持全生命周期在线灵活弹性扩缩容,无需专人维护。
效率
运维效率:KeeWiDB 支持可视化的管控控制台,提供丰富的性能、时延、网络、容量、命中率等监控指标,及其完备的自动化备份回档方案,运维效率显著提升。
开发效率:接入 KeeWiDB,业务上无需再考虑缓存与存储的交互、缓存一致性等问题。读写请求全部发到 KeeWiDB,业务逻辑更简单。同时,KeeWiDB 的缓存是按 Page 为单位,缓存中只保留热 Page,业务无需拆分大 Key,访问冷数据时也只需要加载被访问的 Page,提高缓存利用率的同时保证冷数据的加载速度。
性能
在 zset 类型的相关业务场景,KeeWiDB 性能更优,其中写入提升41%,查询提升62%。
在 QPS 将近1万的情况下,KeeWiDB 24小时、7日最大 P99 延迟均小于20ms。平均 P99 延迟小于3ms,相比 Hades 平均 P99 延迟12ms,延时有明显提升。同时,未出现稳定性相关异常情况。其延迟数据如下图所示:
24小时 QPS 监控


24小时延迟监控


7日延迟监控
