分布式缓存Memcached
分布式缓存服务器,既然用到数据缓存很明显就是想高效性的获取数据,大容量的存储数据.为了可以缓存大量的数据以及可以高效获取数据,那么分布式缓存数据库就要解决数据可以水平线性扩展,这样可以扩大数据容量,其次是缓存在大并发下本身的性能问题.分布式缓存服务需要做如下考虑,需要水平线性扩展,那么就要有合理的路由算法来解决负载均衡问题,以及提供数据备份,这样某结点服务器done机时,可以启动副本.这样就需要考虑数据一致性问题.分布式缓存的核心技术包括首先是内存本身的管理问题,包括了内存的分配,管理和回收机制。其次是分布式管理和分布式算法,其次是缓存键值管理和路由.
magent :做为一个memcached代理服务器它解决了负载均衡问题,自动选择将数据负载到那个结点服务器上,它也提供了数据备份服务,并且当出现done机时会从副本集来获取数据,当然每一个副本集以及每一个服务器都可以是一个代理服务器.
一.资料收集:Cache
1、Cache定义
(1)狭义概念:用于CPU的相对高速处理与主存(Main Memory)的相对低速处理的之间起到协调功能的硬件设备。
(2)广义概念:用于速度相差较大的两种硬件之间,起到协调两者数据传输速度差异的结构。
狭义概念来自于Cache自1967出现以来较长时间内的应用场景。因为CPU的数据处理速度,要远远高于主存,所以在CPU和主存之间会有高速缓存设备,甚至是多级缓存设备。而广义概念,则是目前已经被广泛接受的一种定义,且广义概念中,Cache不再只局限于硬件,也可以是软件。比如用于网络相对低速传输与磁盘相对高速传输之间的速度差异协调。
2、Cache的本质原理
可以一句话概括,就是:Cache把要到慢速设备中取的数据预先放到快速设备中。
3、几种类型的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:内存中存在的对于硬盘读写的缓冲区域。
二.什么是Memcached
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
三.典型用法
1.在用户登陆过滤时,我们通过在sesison保存用户登陆状态来拦截用户未处于登陆状态.但是session是服务器端通过cookie存储的sessionid来存储的数据,对于服务器集群下,如果还是存储在session中,通过代理服务器过来的请求会负载在任意的服务器上,所以这样就无法保证用户登陆的拦截.这时我们就可以通过tomcat的session配置将数据存储在缓存服务器上.
2.数据持久化访问层二级缓存.当我们需要提高关系数据库的读取效率时,我们可能会用到缓存.拿Mybatis来说本身提供有二级缓存,也提供有一个接口.通过实现接口我们可以将数据缓存到你想缓存的数据库中,而对于这种分布式缓存数据库来说,实用性远远高度框架本身自带的缓存数据库.
分布式缓存Memcached的更多相关文章
- CYQ.Data V5 分布式缓存MemCached应用开发介绍
前言 今天大伙还在热议关于.NET Core的东西,我只想说一句:在.NET 跨平台叫了这么多年间,其实人们期待的是一个知名的跨平台案例,而不是一堆能跨平台的消息. 好,回头说说框架: 在框架完成数据 ...
- NET分布式缓存Memcached测试体验
原文地址:http://onlyonewt.blog.sohu.com/160168896.html 一直在学习关注大访问量网站的缓存是如何实现,之前看过Memcached的资料,忙于没有时间来真正测 ...
- 分布式缓存Memcached/memcached/memcache详解及区别
先来解释下标题中的三种写法:首字母大写的Memcached,指的是Memcached服务器,就是独立运行Memcached的后台服务器,用于存储缓存数据的“容器”.memcached和memcache ...
- .NET分布式缓存Memcached从入门到实战
一.课程介绍 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的虽然已经可以实现对页面局部进行缓存,但还是 ...
- 第八章 企业项目开发--分布式缓存memcached
注意:本节代码基于<第七章 企业项目开发--本地缓存guava cache> 1.本地缓存的问题 本地缓存速度一开始高于分布式缓存,但是随着其缓存数量的增加,所占内存越来越大,系统运行内存 ...
- 分布式缓存-Memcached
分布式缓存出于如下考虑,首先是缓存本身的水平线性扩展问题,其次是缓存大 并发下的本身的性能问题,再次避免缓存的单点故障问题(多副本和副本一致性).分布式缓存的核心技术包括首先是内存本身的管理问题,包括 ...
- 分布式缓存memcached介绍,win7环境安装,常用命令set,get,delete,stats, java访问
一.memcached是什么? 二.memcached不互相通信的分布式 三.安装步骤 四.本文介绍的命令主要包括: 存入命令(Storage commands) 取回命令(Retrieval com ...
- 第十五章(附)分布式缓存-Memcached
一.概念 Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能. 二.适用场合 1.分布式应用.由于 ...
- 方法过滤器,分布式缓存 Memcached实现Session解决方案
控制器-〉方法过滤器-〉controller-> 方法 所以通过建立controller基类的方法进行方法过滤,所有控制器先执行基类的OnActionExecuting 方法. using Sp ...
随机推荐
- 游戏设计模式系列(一)—— 单线逻辑&&数据驱动,搞定最容易卡死的结算界面
从事游戏行业1年多了,个中心酸不知从何说起.抛开非技术的不说,一个开发者需要面对的最大问题,可能就是和策划频繁改变的需求做斗争了吧,这时候就体现了设计模式的重要性,抛开正式的设计方式不说,先讲讲我1年 ...
- opencv 连通域需要的函数解析
OpenCV支持大量的轮廓.边缘.边界的相关函数,相应的函数有moments.HuMoments.findContours.drawContours.approxPolyDP.arcLength.bo ...
- oracle删除用户及其名下对象
drop user XXXX cascade; drop tablespace XXXX INCLUDING CONTENTS;
- 洛谷P1458 顺序的分数 Ordered Fractions
P1458 顺序的分数 Ordered Fractions 151通过 203提交 题目提供者该用户不存在 标签USACO 难度普及- 提交 讨论 题解 最新讨论 暂时没有讨论 题目描述 输入一个 ...
- ionic icons and splash
ionic 用cordova 可以直接设置自己的icons ,不用修改默认的图片了 1.在自己的根目录下新建一个文件夹 如icons 2.然后在icons文件夹下再建一个iOS 文件夹存放所需要的图 ...
- 开源项目:X265
1 Windows下编译X265 具体的编译环境: Windows 7(64bit) + Visual Stdio 2010 + Cmake 3.4.3 + vsyasm-1.3.0-win64 a. ...
- hbase 各个概念,region,storefile
HBase中有两张特殊的Table,-ROOT-和.META. .META.:记录了用户表的Region信息,它可以有多高region(这的意思是说.META.表可以分 裂成多个region,和用户表 ...
- XML内容作为String字符串读取报错
解决方案: 1.把头信息<?xml version='1.0' encoding='UTF-8'?>,但是内容会丢失部分: 2.用XmlDocument解析就OK. 正确代码: ...
- 第五章_PHP流程控制
1.顺序结构 2.分支结构 2.1 if...else <?php $today=date("w"); //获取今天星期几 if($today==0){ echo 'Sund ...
- 树莓派(Rospberry Pi B+)到货亲测
1 图鉴 Rospberry Pi B+终于在今天下午有蜗牛快递公司圆*送到了.B+主要是增加了2个USB,增加了GPIO,sd卡换成了micro sd ...先不说直接上图再说,期待了好久好久 整 ...