短链系统设计性能优化-缓存提速及CDN

简介: 如何提高响应速度,和直接打开原链接一样的效率。明确,这是个读多写少业务。

4 Scale


如何提高响应速度,和直接打开原链接一样的效率。


明确,这是个读多写少业务。


4.1 缓存提速(Cache Aside)

缓存需存储两类数据:


long2short(生成新 short url 需要)

short2long(查询 short url 时需要)

7.png


4.2 CDN


利用地理位置信息提速。


优化服务器访问速度:


不同地区,使用通不同 web 服务器

通过 dns 解析不同地区用户到不同服务器

优化数据访问速度


使用中心化的 MySQL+分布式的 Redis

一个 MySQL 配多个 Redis,Redis 跨地区分布

6.png


4.3 何时需要多台 DB 服务器


cache 资源不够或命中率低


写操作过多


越来越多请求无法通过 cache 满足


多台DB服务器可以优化什么?


解决存不下:存储

解决忙不过:qps

那么 tiny url 的主要问题是啥?存储是没问题的,重点是 qps。那么,如何 sharding 呢?


垂直拆分:将多张表分别分配给多台机器。对此不适用,只有两列,无法再拆分。


横向拆分:


若id、shortURL 做分片键:


long2short 查询时,只能广播给 N 台 db 都去查询

为何要查 long2short?避免重复创建呀

若不需要避免重复创建,则这样可行

用 long url 做分片键:


short2long 查询时,只能广播给 N 台 DB 查询。

目录
相关文章
|
存储 缓存 算法
【C/C++ 性能优化】提高C++程序的缓存命中率以优化性能
【C/C++ 性能优化】提高C++程序的缓存命中率以优化性能
2378 0
|
11月前
|
缓存 并行计算 监控
vLLM 性能优化实战:批处理、量化与缓存配置方案
本文深入解析vLLM高性能部署实践,揭秘如何通过continuous batching、PagedAttention与前缀缓存提升吞吐;详解批处理、量化、并发参数调优,助力实现高TPS与低延迟平衡,真正发挥vLLM生产级潜力。
2712 0
vLLM 性能优化实战:批处理、量化与缓存配置方案
|
缓存 应用服务中间件 nginx
Web服务器的缓存机制与内容分发网络(CDN)
【8月更文第28天】随着互联网应用的发展,用户对网站响应速度的要求越来越高。为了提升用户体验,Web服务器通常会采用多种技术手段来优化页面加载速度,其中最重要的两种技术就是缓存机制和内容分发网络(CDN)。本文将深入探讨这两种技术的工作原理及其实现方法,并通过具体的代码示例加以说明。
1266 1
|
缓存 负载均衡 网络协议
电商API接口性能优化技术揭秘:缓存策略与负载均衡详解
电商API接口性能优化是提升系统稳定性和用户体验的关键。本文聚焦缓存策略与负载均衡两大核心,详解其在电商业务中的实践。缓存策略涵盖本地、分布式及CDN缓存,通过全量或部分缓存设计和一致性维护,减少后端压力;负载均衡则利用反向代理、DNS轮询等技术,结合动态调整与冗余部署,提高吞吐量与可用性。文中引用大型及跨境电商平台案例,展示优化效果,强调持续监控与迭代的重要性,为电商企业提供了切实可行的性能优化路径。
|
存储 缓存 自然语言处理
深入PHP内核:理解Opcode缓存与性能优化
【5月更文挑战第14天】 在动态语言的世界里,PHP一直因其高性能的执行效率和广泛的社区支持而备受青睐。随着Web应用的复杂性增加,对性能的要求也越来越高。本文将探讨PHP的Opcode缓存机制,解析其对性能提升的贡献,并展示如何通过配置和使用不同的Opcode缓存方案来进一步优化PHP应用的性能。我们将深入到PHP的核心,了解Opcode是如何生成的,以及它如何影响最终的执行效率。
|
存储 缓存 NoSQL
Redis缓存设计与性能优化
Redis缓存设计与性能优化涵盖缓存穿透、击穿、雪崩及热点key重建等问题。针对缓存穿透,可采用缓存空对象或布隆过滤器;缓存击穿通过随机设置过期时间避免集中失效;缓存雪崩需确保高可用性并使用限流熔断组件;热点key重建利用互斥锁防止大量线程同时操作。此外,开发规范强调键值设计、命令使用和客户端配置优化,如避免bigkey、合理使用批量操作和连接池管理。系统内核参数如vm.swappiness、vm.overcommit_memory及文件句柄数的优化也至关重要。慢查询日志帮助监控性能瓶颈。
742 9
|
存储 缓存 监控
|
缓存 监控 负载均衡
在使用CDN时,如何配置缓存规则以优化性能
在使用CDN时,如何配置缓存规则以优化性能
|
存储 缓存 前端开发
(三)Nginx一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、性能优化...想要的这都有!
早期的业务都是基于单体节点部署,由于前期访问流量不大,因此单体结构也可满足需求,但随着业务增长,流量也越来越大,那么最终单台服务器受到的访问压力也会逐步增高。时间一长,单台服务器性能无法跟上业务增长,就会造成线上频繁宕机的现象发生,最终导致系统瘫痪无法继续处理用户的请求。
816 1
|
存储 缓存 负载均衡
基于C++的高性能分布式缓存系统设计
基于C++的高性能分布式缓存系统设计
884 1