分布式缓存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来说本身提供有二级缓存,也提供有一个接口.通过实现接口我们可以将数据缓存到你想缓存的数据库中,而对于这种分布式缓存数据库来说,实用性远远高度框架本身自带的缓存数据库.

时间: 2024-12-15 06:05:10

分布式缓存Memcached的相关文章

分布式缓存- memcached

分布式缓存出于如下考虑,首先是缓存本身的水平线性扩展问题,其次是缓存大并发下的本身的性能问题,再次避免缓存的单点故障问题(多副本和副本一致性).分布式缓存的核心技术包括首先是内存本身的管理问题,包括了内存的分配,管理和回收机制.其次是分布式管理和分布式算法,其次是缓存键值管理和路由. 原文:http://wenku.baidu.com/view/8686d46c7e21af45b307a8c3.html 什么是Memcached 许多Web 应用程序都将数据保存到RDBMS中,应用服务器从中读取

NET分布式缓存Memcached测试体验

原文地址:http://onlyonewt.blog.sohu.com/160168896.html 一直在学习关注大访问量网站的缓存是如何实现,之前看过Memcached的资料,忙于没有时间来真正测试一下,今天测试下分布式缓存Memcached首先要在缓存服务器上安装安装:memcached(1.2.6 for Win32)测试程序部署到本地环境,开发工具VS2008 .NET3.5 使用到memcached 1.2.6 for Win32下载地址:memcached-1.2.6-win32-

CYQ.Data V5 分布式缓存MemCached应用开发介绍

前言 今天大伙还在热议关于.NET Core的东西,我只想说一句:在.NET 跨平台叫了这么多年间,其实人们期待的是一个知名的跨平台案例,而不是一堆能跨平台的消息. 好,回头说说框架: 在框架完成数据库读写分离的功能后,开始回想起2年前所构思的:关于框架集成分布式缓存MemCached的实现. 之前一直没动手,是因为思路比较飘,秉承着框架应该简单干净轻量引用无依赖和使用不复杂的思维: 看着MemCached的服务端协议,整天思考着自己用Socket写一个客户端. 后来可能是没激情,迟迟没动手.

第八章 企业项目开发--分布式缓存memcached

注意:本节代码基于<第七章 企业项目开发--本地缓存guava cache> 1.本地缓存的问题 本地缓存速度一开始高于分布式缓存,但是随着其缓存数量的增加,所占内存越来越大,系统运行内存越来越小,最后系统会被拖慢(这一点与第二点联系起来) 本地缓存存于本机,其缓存数量与大小受本机内存大小限制 本地缓存存于本机,其他机器的访问不到这样的缓存 解决方案:分布式缓存 Jboss cache:缓存还存于本机,但是会同步更新到其他机器(解决了第三个问题,解决不了第一和第二个问题),如果缓存机器数量很多

.net 下分布式缓存(Memcached)实现

准备给一个查询非常平凡的数据加上缓存,综合多种考虑,考虑使用Memcached Memcached是什么? Memcached是高性能的,分布式的内存对象缓存,用于动态应用中可减少数据库负载,提升访问速度. Mencached能缓存什么? 通过在内存里维护一个统一的巨大的hash表,Memcached能缓存各种格式的数据.如:图像.视频.文本以及数据库检索的结果等. 1.服务器端安装方法: 安装Memcached for win64 网络上的地址很多,下载后,在CMD里运行文件夹里的安装程序 m

第十五章(附)分布式缓存-Memcached

一.概念 Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能. 二.适用场合 1.分布式应用.由于memcached本身基于分布式的系统,所以尤其适合大型的分布式系统. 2.数据库前段缓存.数据库常常是网站系统的瓶颈.数据库的大并发量访问,常常造成网站内存溢出.当然我们也可以使用Hibernate的缓存机制.但memcached是基于分布式的,并可独立于网站应用本身,所以更适合大型网站进行应用的

分布式缓存 Memcached 学习

一.安装服务端: 服务端:http://code.jellycan.com/files/memcached-1.2.6-win32-bin.zip 64:http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available 1. 解压缩文件到c:\memcached 2. 命令行输入 'c:\memcached\memcached.exe -d install'  3. 命令行输入 'c:\memcached\memca

分布式缓存---Memcached 入门

[1]Memcached是使用基于Key-value值对形式的内存缓冲,它不是使用磁盘缓冲来充当缓冲,而是使用实实在在的物理内存. [2]Memcached需要在启动时就指定分配的内存大小.命令如:memcached -d -m 内存大小(M为单位) -l IP地址 -p 端口 [3]Memcached是一种单索引的结构化数据组织形式,所有数据项之间彼此独立(不想传统的数据是关系型的),每个数据项都以key为唯一索引,不要以关系型的思维来对待缓存 [4]Memcached使用基于key的hash

第九章 企业项目开发--分布式缓存Redis(1)

注意:本章代码将会建立在上一章的代码基础上,上一章链接<第八章 企业项目开发--分布式缓存memcached> 1.为什么用Redis 1.1.为什么用分布式缓存(或者说本地缓存存在的问题)? 见<第八章 企业项目开发--分布式缓存memcached> 1.2.有了memcached,为什么还要用redis? 见<第一章 常用的缓存技术> 2.代码实现 2.1.ssmm0 pom.xml 只在dev环境下添加了以下代码: <!-- redis:多台服务器支架用什么