快手 Redis 架构演进:成本优化、稳定增效与未来规划
mhr18 2025-04-26 19:37 43 浏览 0 评论
在当今数字化时代,数据处理和存储的效率与稳定性至关重要。Redis 作为一款高性能的键值对数据库,在众多企业的技术架构中占据着关键地位。快手,作为行业内的佼佼者,其 Redis 架构的演进历程蕴含着丰富的技术实践与创新经验,值得深入探究。
快手 Redis 的应用规模与场景
快手的 Redis 规模堪称庞大,每日处理百万亿级别的命令,内存总量达 PB 级,拥有百万级实例、数万集群和机器,分布在十数个不同的 IDC。如此大规模的应用,源于其多样化的使用场景。在缓存场景中,视频、用户、关系及推荐结果等数据都借助 Redis 进行缓存,极大提升了数据读取速度;社交场景里,计数、时间轴、点赞、关注和排行榜等功能的实现,离不开 Redis 的支持;实时计算方面,实时推荐、广告系统和消息队列依靠 Redis 确保数据的实时处理;电商场景中的抢购、订单和红包业务,Redis 也发挥着重要作用。此外,Redis 还应用于布隆过滤器、咆哮位图、小文件缓存和交换机等场景,充分展现了其强大的功能和广泛的适用性。
Redis 成本优化策略
随着业务的迅猛发展,Redis 的规模也在 “野蛮” 增长。为应对成本问题,快手采取了一系列优化措施。
精细化运营
在生产管控上,改变以往粗放的申请模式,通过精细化申请流程、业务资源接口人审核以及平台按需决策拓扑,结合容量预估工具、业务配额管理和业务画像、用户画像等手段,实现资源的精准分配。在版本管理方面,深入调研国内版本和快手内部版本分布,发现旧版本在容量利用上存在不足。例如,升级版本后,不同数据结构的容量占用有显著降低,字符串类型降低 1.41 倍,hash 类型降低 2.13 倍等。通过合理选择版本,在满足业务需求的同时,有效降低了成本12。
降冷措施
硬件降冷是重要一环,采用大内存、低耗硬件,并自研 Redis on AEP 和 Redis on SSD。Kcache(Redis on AEP)成本仅为传统 Redis 的 50%,Kiwi(Redis on SSD)成本更是低至 10%,在保证性能的前提下,大幅削减了成本。
容器化探索
容器化过程虽历经纠结,但最终确定了其长期价值。尽管短期内容器化可能导致成本增加、效率降低,但从长远看,公司统一调度资源和 K8S 调度优势将带来成本优化和效率提升。而且,在系统调优后,容器 Redis 的性能差异可控制在 1%-2%,稳定性也因容器技术的成熟得到保障。
Redis 稳定增效实践
快手在 Redis 稳定增效方面成果显著,实现了 99.9995% 的高稳定性,由 2 人运维超大规模的万台机器、万个集群和百万实例,全年 SLA 达到 99.999% 以上,连续 5 年无 P 级故障,运维 100% 平台化。这些成绩的背后,是一系列有效的稳定增效手段。
内核及热点优化
Redis 单 work 线程的特性使其在处理单 key 复杂操作时性能欠佳,且热点问题不定时发生,对可用性影响极大。快手通过 1 分钟检测热点,将热 key 上浮到 proxy 层和 Redis SDK,并采用多级缓存(SDK 本地缓存和 Proxy 本地缓存)的方式,有效缓解了热点问题对系统的冲击。
限流与审计优化
针对超量申请和热点写操作,快手实现了全维度(集群、命令、key、调用方)的限流,兼顾稳定性与功能性。同时,优化审计功能,确保数据操作的安全与合规。
安全与版本升级
在安全方面,引入 SSL、ACL 等技术保障数据安全。通过升级 Redis 版本,利用如 Rehash V2、异步删除、异步逐出等新特性,提升系统性能和稳定性。例如,异步删除在处理大 key 时,根据不同数据结构和数据量,能有效减少删除操作的耗时;异步逐出相较于同步逐出,在逐出大量 key 时,Hang 住时间从秒级降至 0.03 秒,极大提升了系统可用性34。
平台化建设
通过 100% 平台化建设,实现运维操作白屏化、自动化和智能化。运维人员无需登录机器即可完成操作,核心运维操作一键完成,日常高频问题可自动自愈,还通过多维度监控和全指标覆盖,及时发现并解决潜在问题,确保 Redis 系统稳定运行。
未来规划展望
展望未来,快手在 Redis 架构上有着清晰的规划。在成本控制上,全面推进容器化,实现公司资源统一调度;持续探索新硬件(AEP、ARM)和新架构(冷热分离)进行降冷;通过多租户技术解决资源长尾问题。在效率提升方面,致力于提升平台效率,实现 80% 运维外包化。在稳定性保障上,持续跟进 Redis 新版本,不断进行稳定性问题自研,确保 Redis 架构始终满足业务发展需求。
快手 Redis 架构的演进实践,为其他企业在 Redis 应用和优化方面提供了宝贵的经验。从成本优化到稳定增效,再到未来规划,每一步都凝聚着技术团队的智慧与努力,也为行业发展指明了方向。
相关推荐
- 【推荐】一个开源免费、AI 驱动的智能数据管理系统,支持多数据库
-
如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!.前言在当今数据驱动的时代,高效、智能地管理数据已成为企业和个人不可或缺的能力。为了满足这一需求,我们推出了这款开...
- Pure Storage推出统一数据管理云平台及新闪存阵列
-
PureStorage公司今日推出企业数据云(EnterpriseDataCloud),称其为组织在混合环境中存储、管理和使用数据方式的全面架构升级。该公司表示,EDC使组织能够在本地、云端和混...
- 对Java学习的10条建议(对java课程的建议)
-
不少Java的初学者一开始都是信心满满准备迎接挑战,但是经过一段时间的学习之后,多少都会碰到各种挫败,以下北风网就总结一些对于初学者非常有用的建议,希望能够给他们解决现实中的问题。Java编程的准备:...
- SQLShift 重大更新:Oracle→PostgreSQL 存储过程转换功能上线!
-
官网:https://sqlshift.cn/6月,SQLShift迎来重大版本更新!作为国内首个支持Oracle->OceanBase存储过程智能转换的工具,SQLShift在过去一...
- JDK21有没有什么稳定、简单又强势的特性?
-
佳未阿里云开发者2025年03月05日08:30浙江阿里妹导读这篇文章主要介绍了Java虚拟线程的发展及其在AJDK中的实现和优化。阅前声明:本文介绍的内容基于AJDK21.0.5[1]以及以上...
- 「松勤软件测试」网站总出现404 bug?总结8个原因,不信解决不了
-
在进行网站测试的时候,有没有碰到过网站崩溃,打不开,出现404错误等各种现象,如果你碰到了,那么恭喜你,你的网站出问题了,是什么原因导致网站出问题呢,根据松勤软件测试的总结如下:01数据库中的表空间不...
- Java面试题及答案最全总结(2025版)
-
大家好,我是Java面试陪考员最近很多小伙伴在忙着找工作,给大家整理了一份非常全面的Java面试题及答案。涉及的内容非常全面,包含:Spring、MySQL、JVM、Redis、Linux、Sprin...
- 数据库日常运维工作内容(数据库日常运维 工作内容)
-
#数据库日常运维工作包括哪些内容?#数据库日常运维工作是一个涵盖多个层面的综合性任务,以下是详细的分类和内容说明:一、数据库运维核心工作监控与告警性能监控:实时监控CPU、内存、I/O、连接数、锁等待...
- 分布式之系统底层原理(上)(底层分布式技术)
-
作者:allanpan,腾讯IEG高级后台工程师导言分布式事务是分布式系统必不可少的组成部分,基本上只要实现一个分布式系统就逃不开对分布式事务的支持。本文从分布式事务这个概念切入,尝试对分布式事务...
- oracle 死锁了怎么办?kill 进程 直接上干货
-
1、查看死锁是否存在selectusername,lockwait,status,machine,programfromv$sessionwheresidin(selectsession...
- SpringBoot 各种分页查询方式详解(全网最全)
-
一、分页查询基础概念与原理1.1什么是分页查询分页查询是指将大量数据分割成多个小块(页)进行展示的技术,它是现代Web应用中必不可少的功能。想象一下你去图书馆找书,如果所有书都堆在一张桌子上,你很难...
- 《战场兄弟》全事件攻略 一般事件合同事件红装及隐藏职业攻略
-
《战场兄弟》全事件攻略,一般事件合同事件红装及隐藏职业攻略。《战场兄弟》事件奖励,事件条件。《战场兄弟》是OverhypeStudios制作发行的一款由xcom和桌游为灵感来源,以中世纪、低魔奇幻为...
- LoadRunner(loadrunner录制不到脚本)
-
一、核心组件与工作流程LoadRunner性能测试工具-并发测试-正版软件下载-使用教程-价格-官方代理商的架构围绕三大核心组件构建,形成完整测试闭环:VirtualUserGenerator(...
- Redis数据类型介绍(redis 数据类型)
-
介绍Redis支持五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sortedset:有序集合)。1、字符串类型概述1.1、数据类型Redis支持...
- RMAN备份监控及优化总结(rman备份原理)
-
今天主要介绍一下如何对RMAN备份监控及优化,这里就不讲rman备份的一些原理了,仅供参考。一、监控RMAN备份1、确定备份源与备份设备的最大速度从磁盘读的速度和磁带写的带度、备份的速度不可能超出这两...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle位图索引 (63)
- oracle批量插入数据 (62)
- oracle事务隔离级别 (53)
- oracle 空为0 (50)
- oracle主从同步 (55)
- oracle 乐观锁 (51)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)