Chinaunix首页 | 论坛 | 博客
  • 博客访问: 309174
  • 博文数量: 33
  • 博客积分: 586
  • 博客等级: 中士
  • 技术积分: 494
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-27 14:05
个人简介

衡铁刚 1)2011-2013:Alibaba MySQL DBA 2)2014-至今: Alibaba 数据库PD

文章分类

全部博文(33)

文章存档

2016年(1)

2015年(10)

2013年(5)

2012年(17)

我的朋友

分类: 云计算

2015-08-10 15:11:38

开放缓存服务( Open Cache Service,简称OCS)是基于内存的缓存服务,支持海量小数据的高速访问。OCS可以极大缓解对后端存储的压力,提高网站或应用的响应速度。OCS支持Key-Value的数据结构,兼容Memcached协议的客户端都可与OCS通信。

OCS 支持即开即用的方式快速部署;对于动态Web、APP应用,可通过缓存服务减轻对数据库的压力,从而提高网站整体的响应速度。

与本地MemCache相同之处在于OCS兼容Memcached协议,与用户环境兼容,可直接用于OCS服务 不同之处在于硬件和数据部署在云端,有完善的基础设施、网络安全保障、系统维护服务。所有的这些服务,都不需要投资,只需根据使用量进行付费即可。

数据库缓存
组合使用ECS、RDS和OCS时,您可以使用如下的架构,读数据的流程会变为:
1)当应用发起读数据请求时(a=?),先访问OCS,此时OCS中没有数据,向应用返回null。
2)应用再向RDS发起读数据请求(a=?),RDS返回数据(a=2)。
3)应用将此数据写入到OCS中(a=2),这样下一次应用读取数据时就可以直接命中缓存了。


临时数据存放:
OCS的另一个使用场景是作为应用程序的临时数据存储。有些应用程序需要维护大量临时数据,例如社交网络、电子商务、游戏、广告等,将临时数据存储在OCS中,可以降低内存管理的开销,改进应用程序工作负载。在分布式环境中,可以将OCS作为全局统一存储,避免单点故障造成的数据丢失,同时解决多个应用程序之间的同步问题。

一个常用的例子是将OCS作为session manager使用,如果您网站的访问量很高,您可能会在多台ECS上部署web应用,前端利用SLB做负载均衡。此时如果同一个用户的不同请求可能会被多台ECS服务,这些ECS可以利用OCS作为全局存储,保存Web Server的Session数据、用户的Token、权限信息等数据。



Memcache:
高效的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等,包含服务器端和客户端。

MemCache的工作流程如下:先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作;如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcached中(memcached客户端不负责,需要程序明确实现);每次更新数据库的同时更新memcached中的数据,保证一致性;当分配给memcached内存空间用完之后,会使用LRU(Least Recently Used,最近最少使用)策略加上到期失效策略,失效数据首先被替换,然后再替换掉最近未使用的数据。
阅读(2497) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~