网站的性能优化思考点

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 网站的性能优化思考点

前言


在我们工作中,有可能仅仅是把某一个项目经理或者架构师等你的领导分配给你的任务完成后就没有什么事情了。但是整个项目不可能仅仅是完成我们编写的代码,在保证我们编写代码的正确性的基础上,有可能会有很多其他的需求。比如说:响应速度,或者同时的访问量等需求。这个时候,我们就要从项目的整体上进行考虑我们的可以优化的地方。


正文


那接下来我们看一看我们的项目都有哪里可以进行优化:

首先是数据缓存的优化:页面缓存,URL缓存,数据缓存

页面缓存:如果我们访问某一个静态页面,而且这个页面很长时间里面的内容是不会轻易变化的时候,我们就可以运用页面的缓存。

URL缓存:顾名思义,就是将某一个特定的URL进行缓存,与页面缓存的不同的是,我们缓存的URL是含有数据的,不同的参数会返回不同的页面(也就是说这个页面是动态的页面)。

数据缓存:(1)redis缓存:redis是内存的K-V数据库,我们可以将某个对象进行序列化,缓存到我们的内存数据库中。比如:一个场景,某一时间段会有大量的用户访问我们的网站,刷新我们的网页,如果没有缓存,那么我们的数据是从数据库中取得的,每个用户取一次,那么10000用户就会10000次。是不是给数据库造成了不小的压力,这时候我们就要想办法缓存我们的数据,来缓解我们的数据库的压力;(2)直接内存缓存(代码里Map可以看似K-V的缓存数据容器):我们在使用redis数据库的时候,有可能某一些场景,在时间上不让我们从redis数据库中取出(虽然很快,但是会有一定的时延)这个时候我们就要考虑使用内存直接缓存我们的数据了。

其次是应用的性能优化:应用的部署优化,业务逻辑优化

上一个是对我们访问数据的优化,这一次是我们对我们编写的应用进行优化,(1)应用部署优化:故名思思,在我们部署我们编写好的应用部署的时候,我们优化我们的部署的结构。我们可以用LVS+keepalived对IP进行负载均衡来部署,在有就是我们可以运用nginx进行负载均衡部署,最后,我们可以区分核心功能和非核心功能,来进行分别的部署。(2)前面说的是我们对我们的应用在部署上的优化,那我们应当考虑我们对编写的应用进行优化:代码优化----优化代码逻辑,提高代码的处理效率;逻辑解耦------使用中间件,来进行异步操作我们的业务逻辑。

我们已经对我们的数据以及我们的部署做了许多优化,下面我们就要考虑我们对数据库性能优化:对于数据库的优化,我们首先可以对我们的服务器硬件进行升级,比如:处理器升级,内存升级,磁盘升级,网络升级;处理器可以提高我们处理数据的速度,内存升级,可以减少我们读出以及写入的时间,磁盘升级可以加快我们的数据的读写速度,网络升级可以增加网络的带宽,因为一般我们的数据库是有专门的服务器的,所有会有带宽网速的问题。仅仅硬件升级,不对我们的数据库表升级是不正确的,所有,我们还要对我们的数据库表进行比较好的设计,符合我们的业务需求,我们还可以对查询频繁的表设置索引,减少查询的时间。如果某一个表的数据量比较大,我们可以进行分表,把一个复杂的查询分为几个比较简单的查询。

上面我们考虑的设备升级会有一定的效果,但是任何计算机都有瓶颈,即使最好的硬件,但是结果会差强人意,那我们应到考虑1+1的策略,也就是说我们购买许多的服务器,来进行集群的部署,那么我们的业务处理的速度会大大的加快!!!!



9.jpg

由于时间仓促,以及作者的水平有限,里面有可能会有很多错误,尽请谅解,仅供参考!!!!

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
4月前
|
SQL 缓存 Java
系统性能优化总结
系统性能优化总结
73 10
|
监控 网络协议 安全
聊聊服务器性能优化~(建议收藏)
聊聊服务器性能优化~(建议收藏)
414 0
|
消息中间件 监控 固态存储
榨干服务器:一次惨无人道的性能优化
做过2B类系统的同学都知道,2B系统最恶心的操作就是什么都喜欢批量,这不,我最近就遇到了一个恶心的需求——50个用户同时每人导入1万条单据,每个单据七八十个字段,请给我优化。
|
Web App开发 SQL 缓存
性能优化
性能优化 前言 以前写过一篇性能优化的笔记前端性能优化小结,那时候算是列了一些优化的点,最近又读了几篇性能优化相关的文章,加上自己动手做了一些实践,相比之前有了更深一点的理解
|
SQL 缓存 NoSQL
服务性能优化总结
服务性能优化总结
124 0
|
Android开发 芯片 UED
初识性能优化
性能优化一词相信大家都经常听到,今天我们就简单的来认识以下性能优化,了解做性能优化的必要性以及优化的分类。
初识性能优化
|
并行计算 程序员 Linux
C++服务性能优化的道与术-道篇:阿姆达尔定律
在之前的文章 《2004:当CPU温和地走入那个良夜》 中我讲到了2000年后摩尔定律的终结,CPU时钟频率定格,多核成为CPU发展的新方向,并行计算成为趋势。
248 0
C++服务性能优化的道与术-道篇:阿姆达尔定律
|
Web App开发 缓存 移动开发
前端性能优化系列 | 什么是性能优化?(上)
1. 性能优化概述 (1)性能优化的影响 为何会出现性能优化呢?实际上产品的性能优化是市场中类似产品的激烈竞争所导致的,这种竞争是不可避免的。归根结底比的就是“人无我有,人有我优,人有我廉,人廉我专”。最终竞品之间的比较都会趋向于性能的竞争,产品的性能可以直接影响其转化率、用户留存率等指标。
321 0
|
Web App开发 前端开发 JavaScript
前端性能优化系列 | 什么是性能优化?(下)
1. 性能优化概述 (1)性能优化的影响 为何会出现性能优化呢?实际上产品的性能优化是市场中类似产品的激烈竞争所导致的,这种竞争是不可避免的。归根结底比的就是“人无我有,人有我优,人有我廉,人廉我专”。最终竞品之间的比较都会趋向于性能的竞争,产品的性能可以直接影响其转化率、用户留存率等指标。
257 0