为什么引入Memcached?
刚memcached了解学习,一直是处于一个懵懂的状态,先是对memcached进行了一个了解,但我们为什么要在ITOO中引入memcached呢?当问我的时候当时自己脑子中打了一个大大的
这就必须去考虑为什么要引入memcached,应该从哪里开始研究呢?首先从memcached的优点,先来看一下它的优点:
【memcached优点】
1)基于客户端分布式
2)速度快
3)memcached不互相通信
4)适合读多少写
【应用】
我们从memcached的优点来分析一下在ITOO中为什么要引入它,首先我们的系统是利用WCF实现分布式的,而且五个系统是独立开发,并且每个系统都有自己的库和服务器,如图为五个系统:
如果我们在权限登录的时候使用Session,只是存到了权限服务器中,别的系统无法从权限服务器来获取Session值,这时我们的memcached作为第三方的缓存就发挥其强大的功能了,存入memcached的是根据hash算法按照key-value来存入,只要知道key我们就可以从memcached中获得数据来实现五个系统共用用户的信息。(分布式存储)
在ITOO中应用主要在考评系统的学生端,第一个学生访问时将题缓存到memcached中,第二个学生根据key值,直接从缓存中读取,这样在大量用户访问时,能够提高用户的体验度,也许第一个人可能会慢一些,但我们更看重的是大多数用户的感受,而不仅仅是个别的用户。(速度快)
在ITOO还有一个应用,就是将考试过程中右侧的答题卡(用来显示某道题是否已经做)直接存入到缓存中,这个数据是不需要存入到数据库中,我们采用缓存,每个用户在考试中,根据Key-value,将数据存入缓存,不会加重数据库的负担,而且也能为用户提供良好的用户体验。(速度快)
memcached的前两个优点我都已经想到了应用场景,第三点是说memcached服务器之间并不会通信,我们可以自己的需要来增加memcached服务器来来满足我们的需要,而不需要担心是否对其他的memcached有影响。
也许还有很多应用场景,欢迎大家来与我共同讨论,咱们共同成长。。。
【总结】
我自己的观点是应用缓存我们是用空间来提高速度,这跟老师说的框架是一个意思,应用框架可以减少开发量,但会降低速度,而memcached是消耗服务器的一部分空间来提升系统的速度。
这次我们主要说了一下memcached的优点,接下来说明memcached的缺点,大家期待更新!
为什么引入Memcached?的更多相关文章
- GPS部标监控平台的架构设计(十一)-基于Memcached的分布式Gps监控平台
部标gps监控平台的架构,随着平台接入的车辆越来越多,架构也面临越来越大的负载挑战,我们当然希望软件尽可能的优化并能够接入更多的车辆,减少在硬件上的投资.但是当车辆增多到某一个临界点的时候,仍然要面临 ...
- Memcached 笔记与总结(9)Memcached 与 Session
一.Memcached 存储 Session 由于 Memcached 是分布式的内存对象缓存系统,因此可以用来实现 Session 同步:把 Web 服务器中的内存组合起来,成为一个“内存池”,不管 ...
- Memcached、Redis OR Tair
一.前言 非关系型数据库(NoSQL = Not Only SQL)的产品非常多,常见的有Memcached.Redis.MongoDB等优秀开源项目,相关概念和资料网上也非常丰富,不再重复描述,本文 ...
- memcached学习(3)memcached的删除机制和发展方向
memcached是缓存,所以数据不会永久保存在服务器上,这是向系统中引入memcached的前提. 本次介绍memcached的数据删除机制,以及memcached的最新发展方向--二进制协议(Bi ...
- memcached使用说明
1.在服务器上注册服务 2.启动服务:services.msc 3.客户端创建服务接口 object Get(string key); List<string> GetKeys ...
- memcached全面剖析--3
memcached的删除机制和发展方向 下面是<memcached全面剖析>的第三部分. 发表日:2008/7/16 作者:前坂徹(Toru Maesaka) 原文链接:http://gi ...
- springMVC整合memcached,以注解形式使用
睡不着,深夜写点博客.闲下来有一个月了,心里多少有点…… 在北京找工作一再受阻,这个时间点也不好找 再接再厉 之前没有用过memcached,没有什么实战经验,看了一些关于memcached的博客,写 ...
- Memcached FAQ
这篇FAQ包含了大家普遍关心的问题.非常值得一看. 原文:http://blog.csdn.net/jarfield/archive/2009/07/05/4322953.aspx 最后更新时间 20 ...
- 高性能缓存系统Memcached在ASP.NET MVC中应用
在Memcached中实体类型未经序列化不能在Memcached中缓存,因此需要对实体类进行处理,才能缓存下来. Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库 ...
随机推荐
- hadoop进阶---hadoop性能优化(一)---hdfs空间不足的管理优化
Hadoop 空间不足,hive首先就会没法跑了,进度始终是0%. 将HDFS备份数降低 将默认的备份数3设置为2. 步骤:CDH–>HDFS–>配置–>搜索dfs.replicat ...
- 【C++札记】内联函数
概述 函数的使用使得相同代码不必多次重写,但会带来额外的开销,函数调用的过程中会有入栈和出栈,这些都会消耗时间. 如果一个函数在程序运行过程中被成千上万次调用,那么这个开销也是不容忽视的,C++中引入 ...
- python学习-38迭代器和生成器
迭代器和生成器 ---- 迭代器协议和for循环工作机制 1.迭代器协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么引起一个Stoplteration异常,以终止迭代(只能往 ...
- JOIN的区别
CREATE TABLE `j1` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `c1` varchar(20) NOT NULL DEFAU ...
- Dubbo快速入门 四
4.业务场景 4.1).提出需求 某个电商系统,订单服务需要调用用户服务获取某个用户的所有地址: 我们现在 需要创建两个服务模块进行测试 模块 功能 订单服务web模块 创建订单等 用户服务servi ...
- 关于PATCH与PUT的区别
两者的区别:PATCH:更新部分资源,非幂等,非安全PUT:更新整个资源,具有幂等性,非安全注:幂等性:多次请求的结果和请求一次的结果一样安全性:请求不改变资源状态 举个两者明显区别的例子(我对两者定 ...
- go语言学习 ---struct 对象的序列化和反序列化(xml)
实例1: //main package main import ( "encoding/xml" "fmt" ) type person struct { Na ...
- NEST 增删改查
/// <summary> /// HEAD /employee/employee/1 /// </summary> public void DocumentExists() ...
- ADO.NET 一(概述)
在 C# 语言中 ADO.NET 是在 ADO 的基础上发展起来的,ADO (Active Data Object) 是一个 COM 组件类库,用于访问数据库,而 ADO.NET 是在 .NET 平台 ...
- js 页面技巧
需要获取页面上固定的某个按钮的属性值.我们需要在页面加载完的第一刻将值存储到定义的变量,防止用户更改页面样式读不出当前元素.如果页面刷新会重置当前属性 <body> <input v ...