
缓存技术
专注于缓存问题思考
行思坐忆,志凌云
务实北斗应用之星火,畅想北斗产品之燎原
展开
-
java缓存技术的介绍
一、什么是缓存1、Cache是高速缓冲存储器 一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问2、凡是位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为 Cache二、缓存的分类1、基于web应用的系统架构图2、在系统架构的不同层级之间,为了加快访问速度,都可以存在缓存操作系统磁盘缓存->减少磁盘机械操作数据库缓存->...转载 2018-12-26 16:59:05 · 126 阅读 · 0 评论 -
java缓存击穿解决方法思考
前言设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。解决方案有很多种...转载 2018-12-27 11:09:45 · 1736 阅读 · 0 评论 -
如何解决高并发下缓存被击穿的问题
背景: 在某些电商促消活动中需要搞活动,对某些页面的访问量(QPS)往往会非常高。如果直接读数据库,肯定DB会承受不住。那比较常见的方案就是让大部分相同信息的请求都尽可能压在cache上来缓解DB的压力,从而尽可能去满足高并发访问的需求在一次具体的促销过程中,当运营同学给广大的消费者推了一条消息:10点准时抢购一批远低于市场价而且数量有限制促销商品。(比如3K块抢一台苹果手机之类的)...转载 2018-12-27 11:29:56 · 1121 阅读 · 0 评论 -
Redis缓存击穿原理、解决方案
什么是缓存击穿在谈论缓存击穿之前,我们先来回忆下从缓存中加载数据的逻辑,如下图所示因此,如果黑客每次故意查询一个在缓存内必然不存在的数据,导致每次请求都要去存储层去查询,这样缓存就失去了意义。如果在大流量下数据库可能挂掉。这就是缓存击穿。场景如下图所示:我们正常人在登录首页的时候,都是根据userID来命中数据,然而黑客的目的是破坏你的系统,黑客可以随机生成一堆u...转载 2018-12-27 11:36:07 · 871 阅读 · 0 评论 -
Java缓存技术介绍(持续整理更新)
OSCacheOSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。OSCache有以下特点:我创建了一个群,群里不定期分享技术干货,行业秘闻,汇集各类奇妙好玩的话题和流行动向!有大神,无广告,如果你喜欢我的文章,可以用qq搜索650385180加群关注。缓存任何对象,你可以不受限制的缓存部分jsp页面或HTTP请求,任何j...转载 2018-12-26 09:49:26 · 614 阅读 · 0 评论 -
Java页面缓存分类
1、动态页面静态化利用模板技术将访问过一次的动态页面生成静态html,同时修改页面链接,下一次请求直接访问静态链接页面动态页面静态化技术的广泛应用于互联网CMS/新闻类Web应用,但也有BBS应用使用该技术,例如Discuz!无法进行权限验证,无法显示个性化信息可以使用AJAX请求弥补动态页面静态化的某些缺点。2、Servlet缓存针对URL访问返回的页面结果进行缓存,适用于粗粒度的页面缓存...原创 2018-12-26 10:08:38 · 255 阅读 · 0 评论 -
防止用户重复提交订单bug,使用lua脚本防止提交订单一key多用
方式一: 每一次交易生成一次交易码。一次性使用方式二:使用lua脚本防止1key多用 防止黑客并发订单攻击(主要原理:在验证交易码正确的同时,在缓存中删除交易码)代码实现public String checkTradeCode(String memberId, String tradeCode) { Jedis jedis = null; try{...原创 2019-09-23 09:03:39 · 602 阅读 · 0 评论