短链系统设计性能优化-缓存提速及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 查询。

相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
6月前
|
存储 缓存 算法
【C/C++ 性能优化】提高C++程序的缓存命中率以优化性能
【C/C++ 性能优化】提高C++程序的缓存命中率以优化性能
903 0
|
存储 缓存 NoSQL
数据库性能优化中的缓存优化
数据库性能优化中的缓存优化
|
3月前
|
缓存 应用服务中间件 nginx
Web服务器的缓存机制与内容分发网络(CDN)
【8月更文第28天】随着互联网应用的发展,用户对网站响应速度的要求越来越高。为了提升用户体验,Web服务器通常会采用多种技术手段来优化页面加载速度,其中最重要的两种技术就是缓存机制和内容分发网络(CDN)。本文将深入探讨这两种技术的工作原理及其实现方法,并通过具体的代码示例加以说明。
270 1
|
3天前
|
存储 缓存 监控
|
6月前
|
存储 缓存 自然语言处理
深入PHP内核:理解Opcode缓存与性能优化
【5月更文挑战第14天】 在动态语言的世界里,PHP一直因其高性能的执行效率和广泛的社区支持而备受青睐。随着Web应用的复杂性增加,对性能的要求也越来越高。本文将探讨PHP的Opcode缓存机制,解析其对性能提升的贡献,并展示如何通过配置和使用不同的Opcode缓存方案来进一步优化PHP应用的性能。我们将深入到PHP的核心,了解Opcode是如何生成的,以及它如何影响最终的执行效率。
|
2月前
|
缓存 监控 负载均衡
在使用CDN时,如何配置缓存规则以优化性能
在使用CDN时,如何配置缓存规则以优化性能
|
4月前
|
存储 缓存 前端开发
(三)Nginx一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、性能优化...想要的这都有!
早期的业务都是基于单体节点部署,由于前期访问流量不大,因此单体结构也可满足需求,但随着业务增长,流量也越来越大,那么最终单台服务器受到的访问压力也会逐步增高。时间一长,单台服务器性能无法跟上业务增长,就会造成线上频繁宕机的现象发生,最终导致系统瘫痪无法继续处理用户的请求。
121 1
|
弹性计算 缓存 运维
【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)(三)
【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)(三)
215 0
|
6月前
|
存储 缓存 负载均衡
基于C++的高性能分布式缓存系统设计
基于C++的高性能分布式缓存系统设计
181 1
|
6月前
|
存储 缓存 负载均衡
基于Java的分布式缓存系统设计与实现
基于Java的分布式缓存系统设计与实现
73 1