开发者社区> CodeShero> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Memcache 缓存机制以及分布式

简介: Memcached是一个高性能的分布式内存对象缓存系统。
+关注继续查看

Memcache 缓存机制以及分布式

Memcache 缓存机制

Memcached是一个高性能的分布式内存对象缓存系统。

目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力,通过在内在里维护一个统一的巨大的的hash表,

它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等,

简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

传统的查询方法是直接查询数据库,数据库将结果返回给查询语句,

而当有Memcache中间缓存层时,查询的是Memcache缓存数据,下面详细了解Memcache各类数据操作原理:

  1. 查询数据(select),首先通过指定的Key查询(get)Memcache中间缓存层数据,如果存在相对应数据,则直接获取出数据结果,查询过程完全不需要查询数据库。如果不存在,则查询MySQL数据库,并以key对应value的形式将查询结果存储在Memcache缓存数据中,然后将结果返回给查询语句。
  2. 更新数据(update),首先更新数据,然后删除相关的memcache数据(delete)。
  3. 增加数据(add),首先删除相关缓存数据,然后增加数据。
  4. 删除数据(delete),删除数据,并删除Memcache数据。

memcache的应用场景

  1. 如果是一个小网站,pv值不大,就不考虑使用memcached
  2. 变化频繁,查询频繁,但是不一定写入数据库(适合memcached)(用户在线状态)
  3. 变化频繁,一变化就要入库(比如股票,金融)不适合memcached
  4. 变化不频繁,查询频繁,不管入不入库,都比较适合memcache,(新浪的新闻频道)

分布式是指将不同的业务分布在不同的地方(几台服务器)。 而集群指的是将几台服务器集中在一起,实现同一业务。
分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。

举例:

就比如新浪网,访问的人多了,他可以做一个集群,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就交给哪一台去完成。

而分布式,从窄意上理解,也跟集群差不多, 但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。memcache的分布式算法取决于客户端,主要用取余算法和一致性哈希算法。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
常用缓存Cache机制的实现
Cache 所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例。
877 0
Ehcache优缺点以及分布式详解
ehcahe的介绍 EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。Ehcache是一种广泛使用的开源Java分布式缓存。
14340 0
memcache 缓存失效问题(转)
在大并发的场合,当cache失效时,大量并发同时取不到cache,会同一瞬间去访问db并回设cache,可能会给系统带来潜在的超负荷风险。 解决方法 方法一 在load db之前先add一个mutex key, mutex key add成功之后再去做加载db, 如果add失败则sleep之后重试读取原cache数据。
980 0
Memcache分布式部署方案
  前言 应该是很久之前,我开始研究Memcache,写了一系列的学习心得,比如《Discuz!的Memcache缓存实现》等。
829 0
+关注
CodeShero
分享个人技术知识点
文章
问答
文章排行榜
最热
最新
相关电子书
更多
分布式高并发缓存6.0
立即下载
高并发分布式缓存Redis6.0
立即下载
Redis多线程性能优化
立即下载