百万级运维经验五:网站缓存设计

大访问量的网站少不了缓存,那如何设计网站的缓存呢?

网站缓存可以有很多种:

1、根据数据表和主键缓存单条数据,如每个用户,每篇文章等等。

2、缓存数据列表,通常用于显示多条数据的地方。如缓存前200篇文章,因为一般前200条数据的查询次数是最多的。

3、缓存模板块,比如某个页面,其中一部分的内容是很少变动的,可以把这部分内容缓存起来。

4、缓存整个页面,比如首页,当程序生成整个页面的内容时,把内容缓存起来,下次访问时直接从缓存里取。

5、数据统计缓存,如评论数、收藏数等。

目前我所了解的是这4钟缓存,根据网站的实际需求灵活搭配使用。缓存有优点也有缺点,使用缓存可以减少数据查询次数,但同时也造成数据延迟,影响体验。缓存时间长短也很重要,太长和太短都不合适,我一般设置5分钟。还可以根据实际情况通过代码手动清除缓存,如文章更改时清除这篇文章的缓存,新增文章时,清除文章列表页的缓存等等,以尽量减少数据延迟。

百万级运维经验五:网站缓存设计

时间: 2024-12-16 07:17:34

百万级运维经验五:网站缓存设计的相关文章

百万级运维经验二:Redis和Memcached的选择

看到很多人推荐使用Redis代替Memcached,我觉得这两个是不一样的东西,它们的关系应该是共存而不是替代. Memcached是个纯内存型的缓存系统,支持数据类型单一,单个缓存数据有限制,支持分布式,我觉得这是个很理想的缓存系统. Redis是个简单的NOSQL数据库,支持几种简单的数据类型,支持主从复制,支持持久化,可以看作是个内存型数据库. 由此可见,Memcached是正宗的缓存系统,Redis是个可以做缓存系统的内存型数据库. 由于Redis的数据可以设置过期时间,支持多种数据类型

百万级运维经验一:Mongodb和Redis数据不能放在同一个服务器

一开始时,为了省服务器,把Mongodb和Redis放在一个服务器上.网站每到高峰期都特别卡,还经常出现502.找了很久的原因,发现硬盘的写数据很大,IOPS也很高,排查了很多原因都没找到.然后再仔细研究监控,发现写硬盘的操作很有规律,每隔几分钟就有一次频繁的写硬盘,联想到Redis同步数据到硬盘的间隔就是几分钟,所以开始怀疑是Redis引起的.于是加了一台服务器,把Redis单独放在那里,发现网站瞬间快了,502问题也不再出现了,真是痛苦的经验啊.至于,把Mongodb和Redis放在同一个服

百万级运维心得一:Mongodb和Redis数据不能放在同一个服务器

百万级运维经验一:Mongodb和Redis数据不能放在同一个服务器 一开始时,为了省服务器,把Mongodb和Redis放在一个服务器上.网站每到高峰期都特别卡,还经常出现502.找了很久的原因,发现硬盘的写数据很大,IOPS也很高,排查了很多原因都没找到.然后再仔细研究监控,发现写硬盘的操作很有规律,每隔几分钟就有一次频繁的写硬盘,联想到Redis同步数据到硬盘的间隔就是几分钟,所以开始怀疑是Redis引起的.于是加了一台服务器,把Redis单独放在那里,发现网站瞬间快了,502问题也不再出

运维经验分享(五)-- 改进的java进程管理的服务控制脚本

运维经验分享作为一个专题,目前共7篇文章 <运维经验分享(一)-- Linux Shell之ChatterServer服务控制脚本> <运维经验分享(二)-- Linux Shell之ChatterServer服务控制脚本二次优化> <运维经验分享(三)-- 解决Ubuntu下crontab不能正确执行Shell脚本的问题(一)> <运维经验分享(四)--关于 java进程管理的服务控制脚本编程思路分析> <运维经验分享(五)-- 改进的java进程管

运维经理的运维经验总结

1. 域名 从买域名开始,要买多个域名,50个甚至100个.分为主域名和推广域名(给推广链接用的).要从godaddy上买域名,因为这里的域名稳定,不会出现被攻击等事情.同时还要买域名保护,这样互联网用户ping这个域名就解析不到真实的服务器地址.同时域名解析的操作不要在godaddy上进行,要把解析的操作放在cloudflare上或者dnspod上进行操作,也可以放到zndns上(这个dns可以做到一个域名解析多个IP地址,根据就近原则,把最快的IP地址解析给用户.)也可以自己搭建dns服务器

如何运维能让网站稳定高效--稳定篇

如何运维能让网站稳定高效--稳定篇 浏览:50 发布日期:2015/08/13 分类:技术分享 本文由 Alan 投稿 作为一名运维工程师,工作中最大的希望就是自己运维的网站能够稳定高效运行,但理想很丰满现实很骨感,实际情况是总会有各种各样状况导致网络.服务器或者应用环境发生故障.面对这种情况,我觉得还是要能从故障中总结出经验规律,让发生的几率不断的降低.要完成稳定和高效两者中的任何一个都是一个极具挑战的事情,这里我以维护自己的blog为例来阐述一下我对稳定这个词的诠释和理解. 我的Blog架设

Linux服务器集群运维经验

公司大概有5000+以上的服务器节点,包括各种应用,我和同事共同维护大约2500+的服务器,主要包括一些视频cdn,直播视频cdn,webcdn和p2p服务器. 以下是自己在运维工作中的一点经验和看法,希望对大家有所帮助 1.       服务器型号的区分,为以后的统一化和标准化作硬件上的准备,很多人忽视这一点,其实如果这一点做得好会使后面的运维工作轻松很多,根据应用我们主要把服务器分为3中,cpu密集型,主要用于大量计算应用,比如p2p;内存密集型,用于cache类应用,比如squid,var

一个兼职DBA的数据库运维经验 小米科技 [email&#160;protected] 2011

一个兼职DBA的数据库运维经验 小米科技  [email protected] 2011 报警监控系统粒度太大,不好用(我们公司现状)数据库状况:十个服务器,惠普HP380G7 戴尔R710 ,都做了主从全部sas盘 15K RAID10服务器内存24G数据库跟业务混用,不是专门给数据库用 导致出问题(我们公司现状)备份用的xtrabackup 数据库不大:160G 70G 30G程序支持分库分表 --------------------------问题 io util% 100%(学)正常io

运维经验分享(六)-- 深究crontab不能正确执行Shell脚本的问题(二)

运维经验分享作为一个专题,目前共7篇文章 <运维经验分享(一)-- Linux Shell之ChatterServer服务控制脚本> <运维经验分享(二)-- Linux Shell之ChatterServer服务控制脚本二次优化> <运维经验分享(三)-- 解决Ubuntu下crontab不能正确执行Shell脚本的问题(一)> <运维经验分享(四)--关于 java进程管理的服务控制脚本编程思路分析> <运维经验分享(五)-- 改进的java进程管