如何构建高性能web网站:分布式缓存
一、数据库前端缓冲区
读缓存区
写缓存区
这个时候就使用到了memcached。
二、使用memcached
key-value
首先为了实现快速缓存,我们不会将缓存内容放在磁盘上。基于这个原则,memcached使用物理内存来作为缓存区,当我们启动memcached的时候,须要指定分配给缓存区的内存大小,比方分配4G
s-colin:~ # memcached -d -m 4086 -l 10.0.1.12 -p 11711
memcached 使用key-value 的方式来存储数据,每一个数据之间相互独立,每一个数据都已key作为唯一的索引。
数据项过期时间
网络并发模型
对象的序列化
基于序列化机制,没有能够将更好层次的抽象数据类型转化为二进制字符串。以便通过网络进入缓存server,同一时候。在读取这些数据的时候。二进制字符串又能够转换回原来的数据类型。
三、读操作缓存
反复的身份验证
缓存用户登录状态
四、写操作缓存
通常的数据写操作包含插入、更新、删除,这些操作的同一时候可能又伴随着条件查找和索引的更新。所以这东西的开销往往是让人印象深刻的。
这个时候,就会用到memcached的原子递增操作,其实,也正是由于它,我们才会考虑在訪问量递增更新的应用中引入写缓存,写缓存的本质是,在对数据库的写入操作累积到你程序定义的数量时,它在一次行的去运行这些操作,尽管实际的写入往往会延迟几秒钟。可是通常情况下,我们对写入的操作也不是要求实时的,这样既提高了效率又满足了我们业务的需求,何乐不为?
五、监控状态
空间使用率
持续关注缓存空间的使用率。能够让我们知道何时须要为缓存系统扩容,以避免因为缓存空间已满造成的数据被动淘汰,有些数据项在过期之前被LRU算法淘汰可能会造成一定不良后果。
缓存命中率
终端用户訪问加速节点时。假设该节点有缓存住了要被訪问的数据时就叫做命中。假设没有的话须要回原server取。就是没有命中。取数据的过程与用户訪问是同步进行的,所以即使是又一次取的新数据。用户也不会感觉到有延时。 命中率=命中数/(命中数+没有命中数), 缓存命中率是推断加速效果好坏的重要因素之中的一个。很教科书式的解释,大家自行消化。
I/O流量
我们还须要关注memcached中数据项读写字节数的增长速度,这反应了它的工作量,我们从中能够得知memcached是忙还是空暇。同一时候我们也可能希望在监控系统中集成对memcached的监控,比如cacti监控系统,后面学习。
缓存扩展
以商业逻辑来划分设计
10.0.1.13-->訪问量统计缓存
一是这两台server的工作量均衡么?
二是假设两台仍不能满足须要,那怎样继续扩展呢?
对于第一个问题,严格来说,要想达到真正的均衡是不现实的,因为它们的职责所在不同。它们的开销和訪问率也不尽同样。所以有的仅仅是相对的均衡。
对于第二个问题。增加訪问量统计缓存须要扩展,那么我们准备一台新的server:10.0.1.14.然后将訪问量统计缓存再次划分。相同基于业务逻辑为基础。比如将子网站划分为两部分,让它们分别存储在两台server上,这样就形成了:
10.0.1.12-->用户登录状态缓存
10.0.1.13-->訪问量统计缓存 group1
10.0.1.14-->訪问量统计缓存 group2
基于key的划分方式
举个样例:
取余之前,我们要做一些准备工作,目的是让key变成整数。并且尽量唯一。比方这个key是:jessonlv-1986.htm
我们先对它进行md5运算,得到一个32字节的字符串比方是:e6e87fc57lkji1245lki1547iuhgt632,同一时候也是一个十六进制的长整数,为了节省开销,我们取这个字符串的前5个字节,然后将其转化为十进制数:比方945689,这个时候我们再将这个数字进行“模3”的运算。取余的结果就是我们server的编号,server的编号从0開始。
这里有个问题或许你一直在思考,那就是我们扩展缓存系统后,由于分区算法的改变,会涉及缓存数据须要从一台缓存server迁移到还有一台缓存server的问题,怎样迁移呢?其实,根本不须要考虑迁移的问题。由于是缓存,它应该具备关键时刻牺牲自己的勇气,你必须明确缓存不是持久性存储,而且从引入分布式缓存时就得时刻提醒自己。
没错。当调整缓存区算法后。我们须要时间来等待缓存的重建和预热。但这往往并不影响网站的正常运转,前提是你要依照文章前面堵缓存和写缓存的设计理念来进线路设计。。
。
版权声明:本文博主原创文章,博客,未经同意不得转载。
如何构建高性能web网站:分布式缓存的更多相关文章
- 【读书笔记】2016.12.10 《构建高性能Web站点》
本文地址 分享提纲: 1. 概述 2. 知识点 3. 待整理点 4. 参考文档 1. 概述 1.1)[该书信息] <构建高性能Web站点>: -- 百度百科 -- 本书目录: 第1章 绪论 ...
- 《构建高性能web站点》随笔 无处不在的性能问题
前言– 追寻大牛的足迹,无处不在的“性能”问题. 最近在读郭欣大牛的<构建高性能Web站点>,读完收益颇多.作者从HTTP.多级缓存.服务器并发策略.数据库.负载均衡.分布式文件系统多个方 ...
- 构架高性能WEB网站的几点知识
前言: 对于构架高性能的web网站大家都很感兴趣,本文从几点粗谈高性能web网站需要考虑的问题. HTML静态化 什么是html静态化? 说得简单点,就是把所有不是.htm或者.html的页面改为.h ...
- 构建高性能web站点--读书大纲
用户输入你的站点网址,等了半天..还没打开,裤衩一下就给关了.好了,流失了一个用户.为什么会有这样的问题呢.怎么解决自己站点“慢”,体验差的问题呢. 在这段等待的时间里,到底发生了什么?事实上这并不简 ...
- 构建高性能WEB站点笔记三
构建高性能WEB站点笔记三 第10章 分布式缓存 10.1数据库的前端缓存区 文件系统内核缓冲区,位于物理内存的内核地址空间,除了使用O_DIRECT标记打开的文件以外,所有对磁盘文件的读写操作都要经 ...
- 构建高性能WEB站点笔记二
构建高性能WEB站点笔记 因为是跳着看的,后面看到有提到啥epoll模型,那就补充下前面的知识. 第三章 服务器并发处理能力 3.2 CPU并发计算 进程 好处:cpu 时间的轮流使用.对CPU计算和 ...
- 构建高性能web站点笔记一
构建高性能web站点笔记 第三章 服务器并发处理能力 3.1吞吐率 描述服务器在实际运行期间单位时间内处理的请求数.也就是一定并发用户的情况下,服务器处理请求能力的量化体现. 吞吐率的前提包括: 并发 ...
- 【转】构建高性能WEB站点之 吞吐率、吞吐量、TPS、性能测试
内容参考:构建高性能WEB站点.pdf 一.吞吐率 我们一般使用单位时间内服务器处理的请求数来描述其并发处理能力.称之为吞吐率(Throughput),单位是"req/s".吞吐率 ...
- 构建高性能WEB站点之 吞吐率、吞吐量、TPS、性能测试
内容参考: 构建高性能WEB站点.pdf 一.吞吐率 我们一般使用单位时间内服务器处理的请求数来描述其并发处理能力.称之为吞吐率(Throughput),单位是 “req/s”.吞吐率特指Web服务器 ...
随机推荐
- LoadRunner获取一个独特的价值在执行的场景
/* * * 笔者:古柏涛 * 迄今:2015-2-26 * E-mail:gubotao@foxmail.com * * 内容概要: * 本代码产生一个从1970年1月1日0时開始累计以毫秒为单位的 ...
- [ Talk is Cheap Show me the CODE ] : jQuery Mobile工具栏
[ Talk is Cheap Show me the CODE ] : jQuery Mobile工具栏 Written In The Font " Wirte less Do more& ...
- 截图工具 Snagit
相对于其他截图工具方面,Snagit 一个主要特点是: 滚动截图. 另:同样基于手工绘制的形状截图, 有可能截取文本(测试只 windows在窗口内的目录 要么 文件名 实用). 不管是 web页,是 ...
- C#如何获得 WINDOWS
版本号
using System; using System.Runtime.InteropServices; namespace GetWindowsVersion { [ StructLayout( La ...
- paip.jdk1.4 1.5(5.0) 1.6(6.0) 7.0 8.0特点比较与不同
paip.jdk1.4 1.5(5.0) 1.6(6.0) 7.0 8.0特点比较与不同 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地 ...
- OCP-1Z0-051-名称解析-文章12称号
12. You need to produce a report where each customer's credit limit has been incremented by $1000. I ...
- Cocos2d-x3.2游戏的核心循环在Application,怎样处理FPS不稳
今天天气非常阴,立即要下雨了,陈吃早点功夫写点东西, 一场秋雨一场寒,十场秋雨要穿棉,各位从今往后多穿点 int Application::run() { if(!applicationDidFini ...
- Objective-C路成魔【2-Objective-C 规划】
郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 编译执行O ...
- OCEANIAERP对接-code盘点机并存储实时库存计划和方案的使用,实时库存,云清查方案
1. PDA手持设备按键说明 [Tab]键:使输入焦点在控件上切换. [ESC]键:弹出是否退出确认对话框,退出操作界面或程序. [OK]键:确认输入或选择,进入下一步操作. [C]键:删除键 ...
- UVa 10397 Connect the Campus
最小生成树 Kruskal #include<cmath> #include<iostream> #include<cstdio> #include<algo ...