分布式缓存服务器,既然用到数据缓存很明显就是想高效性的获取数据,大容量的存储数据.为了能够缓存大量的数据以及能够高效获取数据,那么分布式缓存数据库就要解决数据能够水平线性扩展,这样能够扩大数据容量,其次是缓存在大并发下自己的性能问题.分布式缓存服务须要作以下考虑,须要水平线性扩展,那么就要有合理的路由算法来解决负载均衡问题,以及提供数据备份,这样某结点服务器done机时,能够启动副本.这样就须要考虑数据一致性问题.分布式缓存的核心技术包括首先是内存自己的管理问题,包括了内存的分配,管理和回收机制。其次是分布式管理和分布式算法,其次是缓存键值管理和路由.算法
magent :作为一个memcached代理服务器它解决了负载均衡问题,自动选择将数据负载到那个结点服务器上,它也提供了数据备份服务,而且当出现done机时会从副本集来获取数据,固然每个副本集以及每个服务器均可以是一个代理服务器.数据库
一.资料收集:Cache缓存
一、Cache定义
(1)狭义概念:用于CPU的相对高速处理与主存(Main Memory)的相对低速处理的之间起到协调功能的硬件设备。
(2)广义概念:用于速度相差较大的两种硬件之间,起到协调二者数据传输速度差别的结构。
狭义概念来自于Cache自1967出现以来较长时间内的应用场景。由于CPU的数据处理速度,要远远高于主存,因此在CPU和主存之间会有高速缓存设备,甚至是多级缓存设备。而广义概念,则是目前已经被普遍接受的一种定义,且广义概念中,Cache再也不只局限于硬件,也能够是软件。好比用于网络相对低速传输与磁盘相对高速传输之间的速度差别协调。
二、Cache的本质原理
能够一句话归纳,就是:Cache把要到慢速设备中取的数据预先放到快速设备中。
三、几种类型的Cache
(1)CPU Cache:置于CPU和主存之间,用于加速CPU对主存的相对慢速操做。
(2)Browser Cache:置于客户端与服务器之间,用于加速客户端对服务器的相对慢速操做。
(3)Server Cache:置于网络请求与本地文件之间,用于加速网络请求对本地文件的相对慢速操做。
(4)CDN:CDN即Content Delivery Network,在各地设置的节点Cache,加速用户对服务网络的相对慢速操做。
(5)Database Cache
(6)OS Cache:内存中存在的对于硬盘读写的缓冲区域。tomcat
二.什么是Memcached服务器
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它经过在内存中缓存数据和对象来减小读取数据库的次数,从而提升动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,可是客户端能够用任何语言来编写,并经过memcached协议与守护进程通讯。cookie
三.典型用法网络
1.在用户登录过滤时,咱们经过在sesison保存用户登录状态来拦截用户未处于登录状态.可是session是服务器端经过cookie存储的sessionid来存储的数据,对于服务器集群下,若是仍是存储在session中,经过代理服务器过来的请求会负载在任意的服务器上,因此这样就没法保证用户登录的拦截.这时咱们就能够经过tomcat的session配置将数据存储在缓存服务器上.session
2.数据持久化访问层二级缓存.当咱们须要提升关系数据库的读取效率时,咱们可能会用到缓存.拿Mybatis来讲自己提供有二级缓存,也提供有一个接口.经过实现接口咱们能够将数据缓存到你想缓存的数据库中,而对于这种分布式缓存数据库来讲,实用性远远高度框架自己自带的缓存数据库.并发