缓存服务器

.net 数据缓存(一)之介绍

廉价感情. 提交于 2020-02-05 06:12:51
/*--> */ /*--> */ 现在的业务系统越来复杂,大型门户网站内容越来越多,数据库的数据量也越来愈大,所以有了“大数据”这一概念的出现。但是我们都知道当数据库的数据量和访问过于频繁都会影响系统整体性能体验,特别是并发量高的系统。为此,我们通过数据缓存来,减轻数据库的压力。为此,随着时间的步伐,各式各样的缓存技术的出现,让我们对于这些技术有些眼花缭乱。不是说功能最全的最先进,就是适合自己。我们要看看自己系统的定位去评估自己的系统适合使用哪种缓存机制。当然,也可以通过定义缓存接口,以后方便缓存机制的替换。下面我们来了解下缓存的概念、分类及发展趋势。 一、 概念 a、定义 数据缓存就是将数据暂存于内存缓存区中的一种技术。 b、目的 通常情况下,大量数据是保存在数据库中的,而应用程序访问数据库是一项很费时的操作。如果先将数据库中的数据缓存到缓存区中,当应用程序需要这些数据时,直接从缓存区中提取,就可以减少系统开销。 c、 类别 本地缓存 > 集群缓存 > 分布式缓存(数据网格) 参考:http://in.relation.to/2012/11/08/data-grid-why/ 二、 缓存类别的对比 缓存类别 本地缓存 集群缓存 分布式缓存 存储位置 应用服务器内存 网络服务器内存 网络服务器内存 优点 访问非常快 每一台服务器都包括所有的缓存 数据缓存分布,当缓存增移更

多级缓存中的一级缓存全网流量分发CDN

橙三吉。 提交于 2020-02-05 05:52:17
鸡蛋不要放在一个篮子里,篮子摔了就都没了。 httpdns 浏览器访问一个域名的过程:先去操作系统的hosts文件中寻找域名对应的ip地址,存在就拿来使用,直接向该ip地址发起网络请求。如果没有就去操作系统的dns(domain name service)缓存中查找,缓存是对浏览历史记录的一种缓存,dns服务器存储的就是域名->ip的键值对,在互联网上有很多这种dns服务器,电信、网通、铁通、谷歌、114等都有dns服务器。dns服务器是层层缓存起来的,全世界有13台根域名服务器。一个域名可以绑定多个IP地址,那么该返回哪个IP地址呢?在本机IP配置中有一项DNS服务器的选项,会先去那寻找。物理的距离也会造成高延迟,将nginx部署到各地的服务器上,对域名进行分地区动态绑定,这种技术就叫CDN。nginx:放html静态页面;进行反向代理;写lua脚本等;动静分离;负载均衡等。服务器间同步数据用的是netty框架。初期购买云服务简化开发,随着业务逻辑的复杂度提升,数据私密性及安全性要求,需要自己写框架。nginx基于内存的缓存。数据中心。数据备份。异地数据备份保障数据安全。企业开在派出所旁边。地震海啸等自然灾害带来的数据丢失灾难。LRU缓存清除算法。http_proxy_cache本地磁盘缓存(文件缓存)。十几块钱是让用户装app的成本,以前是三块钱。现在只能做工具类的app。

分布式缓存集群方案特性使用场景(Memcache/Redis(Twemproxy/Codis/Redis-cluster))优缺点对比及选型

蓝咒 提交于 2020-02-05 04:49:59
分布式缓存集群方案特性使用场景(Memcache/Redis(Twemproxy/Codis/Redis-cluster))优缺点对比及选型 分布式缓存特性: 1) 高性能:当传统数据库面临大规模数据访问时,磁盘I/O 往往成为性能瓶颈,从而导致过高的响应延迟.分布式缓存将高速内存作为数据对象的存储介质,数据以key/value 形式存储,理想情况下可以获得DRAM 级的读写性能; 2) 动态扩展性:支持弹性扩展,通过动态增加或减少节点应对变化的数据访问负载,提供可预测的性能与扩展性;同时,最大限度地提高资源利用率; 3) 高可用性:可用性包含数据可用性与服务可用性两方面.基于冗余机制实现高可用性,无单点失效(single point of failure),支持故障的自动发现,透明地实施故障切换,不会因服务器故障而导致缓存服务中断或数据丢失.动态扩展时自动均衡数据分区,同时保障缓存服务持续可用; 4) 易用性:提供单一的数据与管理视图;API 接口简单,且与拓扑结构无关;动态扩展或失效恢复时无需人工配置;自动选取备份节点;多数缓存系统提供了图形化的管理控制台,便于统一维护; 5) 分布式代码执行(distributed code execution):将任务代码转移到各数据节点并行执行,客户端聚合返回结果,从而有效避免了缓存数据的移动与传输.最新的Java 数据网格规范JSR

分布式缓存概述

喜夏-厌秋 提交于 2020-02-05 04:49:07
分布式缓存概述 分布式缓存提供的数据内存缓存可以分布于大量单独的物理机器中。换句话说,分布式缓存所管理的机器实际上就是一个集群。它负责维护集群中成员列表的更新,并负责执行各种操作,比如说在集群成员发生故障时执行故障转移,以及在机器重新加入集群时执行故障恢复。   分布式缓存支持一些基本配置:重复(replicated)、分配(partitioned)和分层(tiered)。重复(Replication)用于提高缓存数据的可用性。在这种情况下,数据将重复缓存在分布式系统的多台成员机器上,这样只要有一个成员发生故障,其他成员便可以继续处理该数据的提供。另一方面,分配(Partitioning)是一种用于实现高可伸缩性的技巧。通过将数据分配存放在许多机器上,内存缓存的大小加随着机器的增加而呈线性增长。结合分配和重复这两种机制创建出的缓存可同时具备大容量和高可伸缩的特性。分层缓存也称作客户机-服务器(client-server)缓存,它是一种拓扑结构,在该结构中缓存功能将集中于一组机器上。缓存客户机通常并不会亲自执行任何缓存操作,而是连接到缓存并检索或更新其中的数据。分层缓存架构可以包含多层结构。 .NET 缓存属于分层缓存 oracle,jboss的缓存属于集群缓存 Oracle Coherence 使用复制、分发、 分区 和失效相结合的方式来可靠地维护集群中的数据。通过这种方式,

网站缓存

痴心易碎 提交于 2020-02-05 04:48:24
网站技术高速发展的今天,缓存技术已经成为大型网站的一个关键技术,缓存设计好坏直接关系的一个网站访问的速度,以及购置服务器的数量,甚至影响到用户的体验。   网站缓存按照存放的地点不同,可以分为客户端缓存、服务端缓存。 客户端缓存   客户端缓存又可分为:浏览器缓存、网关或代理服务器缓存   网关或代理服务器缓存是将网页缓存中网关服务器上,多用户访问同一个页面时,将直接从网关服务器把页面传送给用户。   浏览器缓存是最靠近用户的缓存,如果启用缓存,用户在访问同一个页面时,将不再从服务器下载页面,而是从本机的缓存目录中读取页面,然后再浏览器中展现这个页面。   浏览器缓存的控制,可以设置meta标签,可以设置数字,也可以设置时间,如下: <Meta http-equiv="Expires" Content="3600"> <Meta http-equiv="Expires" Content="Wed, 26 Feb 1997 08:21:57 GMT">   HTTP头信息如下: HTTP/1.1 200 OK Date: Fri, 30 Oct 1998 13:19:41 GMT Server: Apache/1.3.3 (Unix) Cache-Control: max-age=3600, must-revalidate Expires: Fri, 30 Oct 1998 14

分布式缓存(MemCached)

孤街浪徒 提交于 2020-02-05 04:48:09
  最近在为找工作做准备,就看了好多.NET基础知识,发现很多关于页面之间传值的方式,其中就有Session,但也发现Session在实际使用过程中有很多问题。最典型也最重要大的BUG就是如果IIS中同时有很多进程发生时,内存不够用那么有垃圾回收机制,就会导致Session的丢失。解决方法有:可以用Sate Server或SQL Server数据库的方式存储Session,可是这两种方式都有个缺点就是处理速度慢,无法捕获END事件。因此,我便想那么还有什么方式可以解决这一问题呢?   结果就是使用分布式缓存(MemCached)。那么什么是分布式缓存呢?它又有什么优点呢?下面就是我通过查找资料总结的一些心得。 一、Memcached是什么? Memcached是由Danga Interactive开发的,高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。 二、Memcached能缓存什么? 通过在内存里维护一个统一的巨大的hash表,Memcached能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。 三、Memcached快么? 非常快。Memcached使用了libevent(如果可以的话,在linux下使用epoll)来均衡任何数量的打开链接,使用非阻塞的网络I/O,对内部对象实现引用计数(因此,针对多样的客户端

《大规模web服务开发技术》笔记

▼魔方 西西 提交于 2020-02-05 04:47:33
前段时间趁空把 《 大规模 web 服务开发技术 》这本书看完了,今天用一下午时间重新翻了一遍,把其中的要点记了下来,权当复习和备忘。由于自己对数据压缩、全文检索等还算比较熟,所以笔记内容主要涉及前5章内容,后面的零星记了一些。本文可能对如下人士比较有帮助:1、对这本书有兴趣,但对内容存疑的;2、对大规模Web服务有一定经验的,可对照着查漏补缺。 Hatena 的规模 (2010 年 4 月 ) 注册用户 150w , UU1900w/ 月 请求数:几十亿 / 月 繁忙时流量: 850Mbps (不含图像) 硬件(服务器) 600 台,通过虚拟化技术,主机超过 1300 台 日志每天几 GB 级别,数据库 GB 到 TB 级别 系统增长的战略 最小化开端、预见变化的管理和设计 平衡效率和质量 开会、规范化、文档、敏捷等 GB 级别(千万)的文本数据库,不用索引,一句 select 查询 200s 也未能执行完 内存和硬盘的速度差异 寻址:前者是后者的 10w 到 100w 倍 传输速度(总线):前者—— 7.5G/s ,后者—— 58M/s 找寻单机瓶颈(用足单机的性能,不要推测,要测量) sar 或 vmstat 查看是 CPU 问题还是 IO 问题 若是 CPU 问题 top 或 sar 查看是系统进程还是用户程序 ps 查看进程状态和 cpu 使用情况,确定问题进程 用

谈谈个人网站的建立(八)—— 缓存的使用

淺唱寂寞╮ 提交于 2020-02-05 03:09:57
欢迎访问我的网站 http://www.wenzhihuai.com/ 。感谢,如果可以,希望能在GitHub上给个star,GitHub地址 https://github.com/Zephery/newblog 。 一、概述  1.1 缓存介绍 系统的性能指标一般包括响应时间、延迟时间、吞吐量,并发用户数和资源利用率等。在应用运行过程中,我们有可能在一次数据库会话中,执行多次查询条件完全相同的SQL,MyBatis提供了一级缓存的方案优化这部分场景,如果是相同的SQL语句,会优先命中一级缓存,避免直接对数据库进行查询,提高性能。 缓存常用语: 数据不一致性、缓存更新机制、缓存可用性、缓存服务降级、缓存预热、缓存穿透 可查看 Redis实战(一) 使用缓存合理性 1.2 本站缓存架构 从没有使用缓存,到使用mybatis缓存,然后使用了ehcache,再然后是mybatis+redis缓存。 步骤: (1)用户发送一个请求到nginx,nginx对请求进行分发。 (2)请求进入controller,service,service中查询缓存,如果命中,则直接返回结果,否则去调用mybatis。 (3)mybatis的缓存调用步骤:二级缓存->一级缓存->直接查询数据库。 (4)查询数据库的时候,mysql作了主主备份。 二、Mybatis缓存 2.1 mybatis一级缓存

hdfs功能详解介绍(2)

 ̄綄美尐妖づ 提交于 2020-02-05 00:43:30
四、hdfs的安全模式 安全模式是HDFS所处的一种特殊状态,在这种状态下,文件系统只接受读数据请求,而不接受删除、修改等变更请求。在NameNode主节点启动时,HDFS首先进入安全模式,DataNode在启动的时候会向namenode汇报可用的block等状态,当整个系统达到安全标准时,HDFS自动离开安全模式。如果HDFS出于安全模式下,则文件block不能进行任何的副本复制操作,因此达到最小的副本数量要求是基于datanode启动时的状态来判定的,启动时不会再做任何复制(从而达到最小副本数量要求),hdfs集群刚启动的时候,默认30S钟的时间是出于安全期的,只有过了30S之后,集群脱离了安全期,然后才可以对集群进行操作 [hadoop@node01 hadoop]$ hdfs dfsadmin -safemode Usage: hdfs dfsadmin [-safemode enter | leave | get | wait] 五、hdfs 的架构以及 block 块和副本 机制 HDFS分布式文件系统也是一个主从架构,主节点是我们的namenode,负责管理整个集群以及维护集群的元数据信息 从节点datanode,主要负责文件数据存储 hdfs将所有的文件全部抽象成为block块来进行存储,不管文件大小,全部一视同仁都是以block块的统一大小和形式进行存储

大型分布式系统中的缓存架构

十年热恋 提交于 2020-02-04 22:37:02
大型分布式系统中的缓存架构 本文主要介绍大型分布式系统中缓存的相关理论,常见的缓存组件以及应用场景。 缓存概述 缓存概述 缓存的分类 缓存主要分为四类,如下图: 缓存的分类 CDN 缓存 CDN(Content Delivery Network 内容分发网络)的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中。 在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。 应用场景:主要缓存静态资源,例如图片,视频。 CDN 缓存应用如下图: 未使用 CDN 缓存 使用 CDN 缓存 CDN 缓存优点如下图: 优点 反向代理缓存 反向代理位于应用服务器机房,处理所有对 Web 服务器的请求。 如果用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。 如果没有缓冲则先向 Web 服务器发出请求,取回数据,本地缓存后再发送给用户。通过降低向 Web 服务器的请求数,从而降低了 Web 服务器的负载。 应用场景:一般只缓存体积较小静态文件资源,如 css、js、图片。 反向代理缓存应用如下图: 反向代理缓存应用图 开源实现如下图: 开源实现 本地应用缓存 指的是在应用中的缓存组件,其最大的优点是应用和 Cache 是在同一个进程内部,请求缓存非常快速,没有过多的网络开销等。