现在的业务系统越来复杂,大型门户网站内容越来越多,数据库的数据量也越来愈大,所以有了“大数据”这一概念的出现。但是我们都知道当数据库的数据量和访问过于频繁都会影响系统整体性能体验,特别是并发量高的系统。为此,我们通过数据缓存来,减轻数据库的压力。为此,随着时间的步伐,各式各样的缓存技术的出现,让我们对于这些技术有些眼花缭乱。不是说功能最全的最先进,就是适合自己。我们要看看自己系统的定位去评估自己的系统适合使用哪种缓存机制。当然,也可以通过定义缓存接口,以后方便缓存机制的替换。下面我们来了解下缓存的概念、分类及发展趋势。

一、 概念
a、定义

数据缓存就是将数据暂存于内存缓存区中的一种技术。

b、目的

通常情况下,大量数据是保存在数据库中的,而应用程序访问数据库是一项很费时的操作。如果先将数据库中的数据缓存到缓存区中,当应用程序需要这些数据时,直接从缓存区中提取,就可以减少系统开销。

c、 类别

本地缓存 > 集群缓存 > 分布式缓存(数据网格)

参考:http://in.relation.to/2012/11/08/data-grid-why/
二、 缓存类别的对比
缓存类别 本地缓存 集群缓存 分布式缓存
存储位置 应用服务器内存 网络服务器内存 网络服务器内存
优点 访问非常快 每一台服务器都包括所有的缓存 数据缓存分布,当缓存增移更,只需要对单台服务器操作
缺点 内存有限,不易扩展 对缓存增移更操作,需要对所有服务器访问 当一某台服务器(服务器集群)宕机或者网络异常无法访问时,则该服务器的缓存也无法访问了。
适合系统级别 并发量小(<10),数据量不大(单表数据<10万)。 业务单一,并发量大,数据量大(千人用户,并发量在200左右)。 业务量复杂,并发量巨大。
三、 分布式缓存框架对比
名称 Couchbase Memcached Redis
描述 基于CouchDB使用了JSON作为其文档格式,并兼容Memcached的接口 在内存中实现键值对存储方式,最初设计即是实现缓存 在内存中实现键值对存储方式,用于数据库、缓存和消息代理(因为Redis非常注重性能,所以大部分设计要求高性能和低延迟)
数据模型 文档数据(键值对) 键值对 键值对(多个数据类型和一组丰富的操作,以及可配置的数据过期、驱逐和持久性)
官方网站 www.couchbase.com www.memcached.org redis.io
首次发行 2011 2003 2009
现行版本 3.0.3, 2015年3月 1.4.24, 2015年4月 3.0.3, 2015年6月
许可协议 开源(Apache version 2) 开源(BSD license) 开源(BSD 3-Clause, commercial license available)
趋势图

参考:db-engines.com/en/
总结:缓存的发展,其实是前一种类型进化的产物,所以可以兼容前一种类型。哪一种方案最优,最易,要看架构设计要求了。不需要简单的事情复杂化。但是为了讲解缓存,我只会讲解Redis。因为他是目前使用率最高的分布式缓存。后面我会讲一讲如何使用Redis。

.net 数据缓存(一)之介绍的更多相关文章

  1. [原创]关于mybatis中一级缓存和二级缓存的简单介绍

    关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...

  2. asp.net中缓存的使用介绍一

    asp.net中缓存的使用介绍一 介绍: 在我解释cache管理机制时,首先让我阐明下一个观念:IE下面的数据管理.每个人都会用不同的方法去解决如何在IE在管理数据.有的会提到用状态管理,有的提到的c ...

  3. Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析

    mongodb和memcached不是一个范畴内的东西.mongodb是文档型的非关系型数据库,其优势在于查询功能比较强大,能存储海量数据.mongodb和memcached不存在谁替换谁的问题. 和 ...

  4. 【菜鸟学习jquery源码】数据缓存与data()

    前言 最近比较烦,深圳的工作还没着落,论文不想弄,烦.....今天看了下jquery的数据缓存的代码,参考着Aaron的源码分析,自己有点理解了,和大家分享下.以后也打算把自己的jquery的学习心得 ...

  5. jQuery1.9.1源码分析--数据缓存Data模块

    jQuery1.9.1源码分析--数据缓存Data模块 阅读目录 jQuery API中Data的基本使用方法介绍 jQuery.acceptData(elem)源码分析 jQuery.data(el ...

  6. cache应用(asp.net 2.0 SQL数据缓存依赖 [SqlCacheDependency ] )

    Asp.net 2.0 提供了一个新的数据缓存功能,就是利用sql server2005 的异步通知功能来实现缓存 1.首先在sqlserver2005 中创建一个test的数据库. 在SQL Ser ...

  7. SQL数据缓存依赖 [SqlServer | Cache | SqlCacheDependency ]

    前言 本文主要是对<ASP.NET 2.0开发指南>——<数据缓存>章节内容的提取并略有补充. 参考资料 1.     <ASP.NET 2.0开发指南> 2.   ...

  8. SQL SERVER 2000 & SQL SERVER 2005 数据缓存依赖

    一.SQL SERVER 7.0/2000和SQL SERVER 2005的简介及比较 1.1     SQL SERVER 7.0/2000 SQL SERVER 7.0/2000没有提供内置的支持 ...

  9. SpringMVC + ehcache( ehcache-spring-annotations)基于注解的服务器端数据缓存

    背景 声明,如果你不关心java缓存解决方案的全貌,只是急着解决问题,请略过背景部分. 在互联网应用中,由于并发量比传统的企业级应用会高出很多,所以处理大并发的问题就显得尤为重要.在硬件资源一定的情况 ...

随机推荐

  1. 如何使用java指令执行含package的class文件

    代码文件存放在E:/Temp/JAVA_TEMP/tmp文件夹,代码如下: package tmp; public class Temp { public static void main(Strin ...

  2. sssssss

    1dispatcherServlet—拦截到spring mvc的请求 2dispatchServlet调用HandlerMapping( DefaultAnnoationHandlerMapping ...

  3. 查看环境变量CLASSPATH, PATH ,JAVA_HOME-------->mac

    终端(命令行)操作 推荐两篇博客:http://elf8848.iteye.com/blog/1582137 http://blog.csdn.net/done58/article/details/5 ...

  4. 网络模型一般是指 OSI 七层参考模型和 TCP/IP 五层参考模型。

    网络模型一般是指 OSI 七层参考模型和 TCP/IP 五层参考模型. 每一层实现各自的功能和协议,并且都为上一层提供业务功能.为了提供这 种业务功能,下一层将上一层中的数据并入到本层的数据域中,然后 ...

  5. 解决hung_task_timeout_secs问题【方法待校验】

    问题描述:   kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this messag ...

  6. python常见模块之random模块

    import random print(random.random()) #随机产生一个0-1之间的小数 print(random.randint(1,3)) #随机产生一个1-3之间的整数,包括1和 ...

  7. XTU1198:Candy(背包)

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/libin56842/article/details/26182519 题目描写叙述 Henry和Le ...

  8. redis实现自动输入完成(八)

    1. 介绍 当我们在京东商城的搜索框,输入想要搜索的内容,比如你想要搜索"热水瓶",刚输入一个"热"字,就会出现一个下拉框,列出了很多以"热" ...

  9. 怎么解决tomcat占用8080端口问题图文教程

     怎么解决tomcat占用8080端口问题 相信很多朋友都遇到过这样的问题吧,tomcat死机了,重启eclipse之后,发现 Several ports (8080, 8009) required ...

  10. SDUT1607:Number Sequence(矩阵快速幂)

    题目:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1607 题目描述 A number seq ...