专栏首页性能与架构通过分布式缓存实现缓存可伸缩

通过分布式缓存实现缓存可伸缩

缓存是改善网站性能的最重要手段,一方面缓存使用内存存储数据,可以更快速地响应请求;另一方面大量数据访问请求通过缓存返回,减少数据库压力,进一步改善性能

目前网站中大量使用的缓存服务是 Memcached或者Redis

以Memcached为例

应用程序通过Memcached客户端访问Memcached服务器集群,其中路由算法模块负责根据应用程序输入的KEY计算得到应该访问哪台服务器,然后通过通信模块从对应服务器上读写数据 如果Memecahed集群需要缓存更多数据或者需要提供更高的并发访问,只需要向集群中增加新的服务器,然后修改客户端服务器列表即可应用程序访问到新加的服务器 需要注意的是如果路由算法选择不当,比如使用余数Hash算法,会出现加入一台服务器而导致现有的缓存数据大量访问不能命中的情况,其后果相当于缓存服务器集群整体宕机,给系统带来灾难性后果。目前Memcached主要采用一致性Hash算法,这种算法可以使加入新服务器对现有数据访问影响最小

本文分享自微信公众号 - 性能与架构(yogoup),作者:杜亦舒

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-10-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • nginx 缓存机制

    Nginx缓存的基本思路 利用请求的局部性原理,将请求过的内容在本地建立一个副本,下次访问时不再连接到后端服务器,直接响应本地内容 Nginx服务器启动后,会对...

    dys
  • Varnish缓存服务器原理

    Varnish 是什么 Varnish是高性能开源的反向代理服务器和HTTP缓存服务器 Varnish的功能与Squid服务器相似,都可以用来做HTTP缓存...

    dys
  • 网站架构演化过程

    网站的架构通常都是逐渐演化完善的,下面就是一个常规的成长过程 (1)初识阶段 一台服务器 最初的架构,应用程序、数据库、文件都部署在一台服务器上 ? (2)...

    dys
  • 为什么我们做分布式使用Redis?

    绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知。这里...

    一个优秀的废人
  • 为什么我们做分布式使用 Redis ?

    绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知。这里...

    一个优秀的废人
  • Java数据类型 拆箱和装箱

    解释缓存范围 Integer.valueOf()方法基于减少对象创建次数和节省内存的考虑,缓存了[-128,127]之间的数字。此数字范围内传参则直接返回缓存...

    瑞新
  • 《大型网站技术架构》读书笔记三:大型网站核心架构要素

    此篇已收录至《大型网站技术架构》读书笔记系列目录贴,点击访问该目录可获取更多内容。

    Edison Zhou
  • 为什么我们做分布式使用 Redis?

    绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知。这里...

    黄泽杰
  • Ehcache优缺点以及分布式详解

    ehcahe的介绍 EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。Ehcach...

    小柒2012
  • Android RxJava 实战系列:从磁盘 / 内存缓存中 获取缓存数据

    Carson_Ho的Github地址 = RxJava2实战系列:从磁盘 / 内存缓存中 获取缓存数据

    Carson.Ho

扫码关注云+社区

领取腾讯云代金券