• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

优化缓存架构思考

Cache supingemail 2940次浏览 0个评论

好记忆不如烂笔头, 能记下点什么, 就记下点什么, 方便后期的巩固 . . . 

前言

     缓存的使用,可以更好的服务于我们的系统,让用户有一个很好的体验。

描述

正常情况下,使用redis , redis cluster,还是memcached 都可以达到我们的要求,但是:

在高并发的情况下,如果保证我们的缓存服务起作用并且能够支撑起大QPS 而不会导致机器宕机,不能提供服务呢?

我以常用的 Redis 为例,主要可以采取以下方式来进行处理。

解决方案

1. 缓存扩容

          主要是指将redis 所在机器的内存提升,加内存条和调节redis 的配置参数,来扩大内存存储以及相应,

这种主要是存在于单机使用。

 

2. 缓存熔断器

          这种主要是指master-slave 或者集群的redis部署情况下,设置 “熔断限流”,当QPS达到一定的量之后,

自动限制访问,将流量转到其他redis实例上去。

 

3.增加本地缓存

          本地缓存可以选择hashmap,guava的CacheBuilder,Ehcache 等等,将常用的热数据,放入到本地的缓存中来,以提高系统的访问量和抗住高并发的情况。

 

总结

       其实,缓存高并发,主要体现在热key大value 上,

热key :是指一直都被访问的数据 ,当然也指某个时间段最爱被用户点击和访问的数据;

一直都被访问的数据 很好处理,基本上是一次性处理好,以后都基本没问题。

但是突然之间被放大量访问的数据,则是比较头疼的事情,需要在开发中时刻注意,提前处理好相应的逻辑和应对之策。

 

大value:是指某个key对应的value可能有GB级的大小,导致查询value的时候导致网络相关的故障问题。

这样的数据,存放在redis服务器会有io消耗,所以最好的方式是存储在本地的缓存中,同时增加机器的内存,以提供更加良好的服务。

 

       目前想到的就是这些,欢迎提出更好的建议!

 

 

 

 

 

 

 


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明优化缓存架构思考
喜欢 (0)

您必须 登录 才能发表评论!

加载中……