在金智教育业务中,APP登录验证会使用Redis存储token,一旦主从切换,会导致大量用户重复验证登录。这也是Redis常见的问题。
此外,在学生报表业务中,数据的完整性非常重要。一旦发生数据丢失,全国的老师都会发现系统中有一部分学生的信息无法查看,此时不得不通过人工来补救数据,非常耗时。
业务访问模型往往会存在一些热点,开源Redis集群虽然整体带宽高,但由于每个分片带宽小,因此经常触发分片流控,导致业务受损。
在金智教育的业务中,流控触发就意味着业务受损,因此非常需要一款“不流控”的Redis服务。
在海量数据处理的场景下,需要Redis长期保存数据。开源Redis扩容操作意味着加分片,耗时久而且影响业务。扩容只能靠DBA熬夜支撑,效率低下。
此外,随着数据增长,开源Redis的使用成本也会一次次“翻倍”,例如从32GB扩容到64GB,会给公司带来较高的成本开销,金智教育也急需要一款成本可控的KV数据库。
针对金智教育在Redis使用中遇到的几大核心痛点,GaussDB(for Redis)提供了完善的配套解法:
试想在10000 QPS的写入流量下,开源Redis即使配置秒粒度的AOF下刷(影响性能,往往不适合在线上环境开启),主备倒换也会引起10000条业务数据的丢失,损失很大。因此,开源Redis的“丢数据”是先天的痛点,并不适合用在数据重要的业务场景下。
GaussDB(for Redis)存储数据的可靠性非常高,用户数据在GaussDB(for Redis)默认存储3个副本,成本上仅按1个副本计费,不会带来额外费用。计算节点使用预写日志WAL实现了命令级的可靠存储,即使分片发生故障倒换,由于有存储池保障全量数据的可靠性,也能保障业务数据的安全。
切换到GaussDB(for Redis)后,金智教育线上业务的稳定性得到了大幅度提升,而不再需要消耗人工精力去“补数据”了。
开源Redis的部署往往是多租户共用一个容器,因此不得不做流控,否则会发生租户间相互干扰的情况。分片的流控是常发生的现象,这会产生“木桶效应”,只有采用独立容器部署Redis才能解决。
GaussDB(for Redis)的每个分片都采用独立容器,带宽不做额外限流,分片(独立容器)带宽全部提供给业务程序使用,即使业务访问存在一定倾斜,也不担心被某个分片流控。
GaussDB(for Redis)的扩容体验在行业里是领先的,目前已经支持全自动扩容,无需人工干预,且扩容平滑无感,秒级完成。对业务来说,连接不会被中断,也不会引起时延抖动,随着业务增长,扩容可以放心交给服务端自动化完成。
此外,金智教育在迁移数据时,发现100GB的数据迁入到GaussDB(for Redis)只占用了不到50GB的空间,从长远来看存储成本非常有优势。这是由于GaussDB(for Redis)通过高效压缩技术对数据进行了逻辑+物理块压缩,能够有效降低存储开销。




