黑龙江省建设教育网站查询小企业网站建设计划书

news/2025/10/8 22:06:08/文章来源:
黑龙江省建设教育网站查询,小企业网站建设计划书,seo关键词挖掘工具,网站规划的基本步骤目录 1、什么是缓存 2、为什么使用Redis作为MySQL的缓存 3、缓存的更新策略 3.1、策略一#xff1a;定期生成 3.2、策略二#xff1a;实时生成 内存淘汰策略【面试重点】 4、缓存预热(Cache preheating)【面试重点】 5、缓存穿透(Cache penetration)【面试重点】 6、…目录 1、什么是缓存 2、为什么使用Redis作为MySQL的缓存 3、缓存的更新策略 3.1、策略一定期生成 3.2、策略二实时生成 内存淘汰策略【面试重点】 4、缓存预热(Cache preheating)【面试重点】 5、缓存穿透(Cache penetration)【面试重点】 6、缓存雪崩(Cache avalanche)【面试重点】 7、缓存击穿(Cache breakdown)【面试重点】 1、什么是缓存 缓存其实核心实现的就是能够更快访问到数据~ 更快既然是一个比较级的关系那么就是会有一个相对关系谁对谁来说更快谁对谁来说访问速度更快是谁谁的缓存。 举例理解你把钱存在银行每次买东西之前你需要去银行取钱然后再来付款这个过程就会比较麻烦这种情况下你可以取一小部分钱放在口袋里每次买东西付款时直接从口袋里取钱这个过程就会相对来说更加高效了。此时口袋相对银行来说访问速度更快就可以使用口袋作为银行的缓存大大提高办事效率~ 那么对于计算机来说硬盘相对于网络来说访问速度更快就可以使用硬盘作为网络的缓存内存相对于硬盘来说访问速度更快就可以使用内存作为硬盘的缓存CPU寄存器相对于内存来说访问速度更快就可以使用CPU寄存器作为内存的缓存。 那上述所说的缓存是更快了但并不意味着可以把所有数据都放在缓存中因为缓存的空间往往是有限的缓存上只放一些热点数据就可以了~【二八定律】 2、为什么使用Redis作为MySQL的缓存 Redis典型的应用场景就三个存储数据 、 缓存【最常见】 、 消息队列。 下面就简单介绍一下为什么使用Redis作为MySQL的缓存 1MySQL·(关系型数据库)虽然功能强大但是其性能并不高每一次查询操作消耗的系统资源比较多。性能不高其承担的并发量就有限一旦请求数据量多了数据库的压力就会很大甚至很容易宕机了~ 2关系型数据库为什么性能不高数据库把数据存储在硬盘上硬盘的IO速度并不快尤其是随机访问如果查询不能命中索引就需要进行表的遍历这就会大大增加硬盘IO次数关系型数据库对于SQL的执行会做一系列的解析校验优化工作如果是是一些复杂的查询比如联合查询需要进行笛卡尔积操作效率更是降低很多~ 3提高MySQL能承担的并发量开源-引入更多的机器构成数据库集群节流-引入缓存把一系列的热点数据保存在缓存上后续查询数据时如果缓存中已经存在就不用再访问MMySQL了~ 那我们如何知道Redis中应该存储哪些数据呢怎么判定他是热点数据呢具体看我们下面介绍的缓存的更新策略~ 3、缓存的更新策略 3.1、策略一定期生成 将一定时间内访问的数据以日志的形式记录下来对于其访问的数据频次进行统计挑选出访问频次最高的前N%的数据定期将这些数据同步到缓存服务器上控制这些缓存服务器自动重启~ 通常情况下会有一个脚本代码来执行这个操作通过定时任务来触发: 完成统计热数据过程根据热数据找到其查询结果的数据将这些缓存数据同步至缓存服务器上控制这些缓存服务器自动重启~ 优点 上述方式在实际实现会比较简单过程更加可控(缓存中有啥数据是比较固定)方便排查问题~ 缺点 实时性不够如果有突发事件的相关数据变成热数据了但由于数据还没有同步到缓存服务器中就会给数据库带来较大的压力~ 3.2、策略二实时生成 实时生成其过程就是 如果Redis中查到了就返回其结果如果Redis中不存在就从数据中查把查询结果同时也写到Redis中~ 但是这种方式也会带来一个问题Redis中不存在的数据很多每次查都往里新增数据不停地增加后内存可能会达到上限此时再插入数据可能就会触发一些问题。此时Redis就引入了“内存淘策略”如下 内存淘汰策略【面试重点】 通用的淘汰策略 FIFO(First In First Out)先进先出把缓存中存在时间最久的淘汰掉----按进入Redis的时间按序时间越老越先淘汰LRU(Least Recently Used)淘汰最久未使用的记录每个key的最近访问时间把最近访问时间最老的key淘汰---按最近访问时间排序时间越老越先淘汰LFU(Least Frequently Used)淘汰访问次数最少的记录每个key的最近一段时间的访问次数那访问次数最少的淘汰----按某段时间内的访问次数排序次数越少越先淘汰Random随机淘汰在所有的key中随机淘汰~ Redis中的淘汰策略 volatile-lru当内存不足以容纳新写的数据时从设置了过期时间的key中使用LRU算法进行淘汰allkeys-lru当内存不足以容纳新写的数据时从所有的key中使用LRU算法进行淘汰volatile-lfu当内存不足以容纳新写的数据时从设置了过期时间的key中使用LFU算法进行淘汰allkeys-lfu当内存不足以容纳新写的数据时从所有的key中使用LFU算法进行淘汰volatile-random当内存不足以容纳新写的数据时从设置了过期时间的key中随机进行淘汰allkeys-random当内存不足以容纳新写的数据时从所有的key中随机进行淘汰volatile-ttl当内存不足以容纳新写的数据时从设置了过期时间的key中根据过期时间越早过期的优先被淘汰noeviction默认的策略当内存不足以容纳新的数据时新写入的操作会报错~ 上述的Redis淘汰策略其实就是根据通用的策略再结合Redis的特点【可以设置过期时间】来进行淘汰数据~ 4、缓存预热(Cache preheating)【面试重点】 对于缓存中的数据如果采用实时生成的策略就需要考虑到预热问题。 因为在最开始Redis服务器首次连接其中还没有数据那所有的请求就会被打给MySQL了随着时间的推移Redis上的数据越积累越多MySQL承担的压力才会逐渐减小~ 如何解决上述问题 使用缓存预热。具体来说就是把定期生成和实时生成结合一下先通过离线的方式通过一些统计的途径先把热数据找到一批导入到Redis中此时这些导入的热点数据就能帮MySQL承担很大的压力了随着时间的推移逐渐就使用新的热点数据淘汰掉旧的数据~ 5、缓存穿透(Cache penetration)【面试重点】 什么是缓存穿透? 当在查询某个key时Redis中没有该数据然后去MySQL中查询MySQL里面也没有这个值那这个key肯定就也不会被更新到Redis中那后续再查这个key依然没有这个数据。像这种的数据如果存在很多并且还一直被反复查询一样也会给MySQL带来很大的压力~ 为什么会出现这种情况 业务设计不合理。例如缺少了参数校验的环节导致非法的key也能够被查询了开发/运维操作失误不小心把部分数据从数据库中误删了黑客恶意攻击  如何解决问题 如果出现过这种情况我们在以后的工作中就会得到教训要改进业务、加强监控报警系统等~ 那这些都是以后的工作中得到的教训话说回来那当你正发现这个问题了你应当如何降低问题的严重性呢如下 1如果发现了这个key在Redis和MySQL上都不存在仍然将这个key写入到Redis中value设成一个非法值例如 “”2还可以引入布隆过滤器每次查询Redis或MySQL之前都先判定一下key是否在 布隆过滤器上 存在~ 所有的key都插入到布隆过滤器中 6、缓存雪崩(Cache avalanche)【面试重点】 什么是缓存雪崩 在短时间内Redis上大规模的key失效导致缓存命中率陡然下降并且MySQL的压力迅速上升甚至直接宕机~ 为什么会出现这种情况 Redis直接挂了【Redis宕机或者是Redis集群模式下的大量节点宕机】Redis正常工作但是可能之前短时间内设置了很多的key并且过期时间都是相同的【通过大规模key过期】 如何解决问题 1加强监控报警系统加强Redis集群可用性的保证2不给key设置过期时间 或者是设置过期时间但是同时会加上一个随机因子避免在同一时刻过期 7、缓存击穿(Cache breakdown)【面试重点】 什么是缓存击穿 缓存击穿也可以叫做是缓存瘫痪~ 就是缓存雪崩的一种特殊情况这对热点的key【热点数据访问频率高影响更大】突然过期了导致大量的请求直接访问在数据库上了甚至引起数据库宕机~  为什么会出现这种情况 业务设计不合理。例如缺少了参数校验的环节导致非法的key也能够被查询了开发/运维操作失误不小心把部分数据从数据库中误删了黑客恶意攻击  如何解决问题 1进行必要的服务降级。例如访问数据库的时候使用分布式锁限制同时请求数据库的并发数2不给key设置过期时间 或者是设置过期时间但是同时会加上一个随机因子避免在同一时刻过期 好啦本期到这里咯下期见~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/931991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《算法设计与分析》第一章学习记录

一、互联网大公司的编码规范 核心目标是协同、质量、效率与安全。 1.命名规范 变量、函数、类名必须能清晰地表达其意图,避免使用 a, b, c, tmp 等无意义名称。严格遵守 camelCase、PascalCase、snake_case 等约定,并…

mcp_server

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" https://github.com/runekaagaard/mcp-alchemy"imes": { "command": "uvx", &qu…

香山红叶建设有限公司网站虚拟主机安装wordpress

一、代理模式 代理模式定义:为其他对象提供一种代理以控制对这个对象的访问。 上面类图中有一个订单接口类(OrderService)、一个订单实现类(OrderServiceImpl),订单模块的业务相对复杂和重要,如果这时候要在方法执行前后加上日志&#xff0c…

2025.10 国庆集训模拟赛总结

把门视为点,找环,答案就是环的长度先预处理前缀和 然后预处理f[i]表示满足j<i且aj==ai的最大的j。 答案就变成了:第一问用树套树类结构维护 第二问直接二分第一问就行,因为第一问我们在先做了。 树套树太难写,…

详细介绍:https和http有什么区别-http各个版本有什么区别

详细介绍:https和http有什么区别-http各个版本有什么区别pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consola…

CF2150F Cycle Closing

感觉上判是否能一次完成是困难的。设两次的路径长度分别为 \(a, b\),考虑一些特殊情况。 题目一定有解,考虑取出一棵生成树。可以发现,第二次操作时的边数实际上很多,感觉上对于 \(b\) 不能限制得太小。考虑 \(a\)…

Easysearch 字段隐身之谜:source_reuse 与 ignore_above 的陷阱解析

背景问题 前阵子,社区有小伙伴在使用 Easysearch 的数据压缩功能时发现,在开启 source_reuse 和 ZSTD 后,一个字段的内容看不到了。 索引的设置如下: {......"settings": {"index": {"co…

QOJ856 Cactus 广义串并联图

题意 给定一棵仙人掌, 你需要用 \(k\) 种颜色给每个结点染色, 且保证有边相连的结点的颜色不相同, 求染色的方案数对 \(10^9+7\) 取模的结果。仙人掌定义为一张特殊的无向图, 其中每条边至多在一个简单环上。 题解 因为…

CF2152 订题

context A 除了最小的数字每种数字都会占用一次,去重后直接输出 \(2n-1\) 即可。 B 太神秘了,先咕咕咕。 C 发现如果一个区间内存在至少一个长度 \(\ge 2\) 的同色连续段,那么这个连续段可以通过删除两个同色之间的…

TortoiseSVN账号切换 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

房产中介 网站开发天津招投标天津建设工程信息网

电脑 远程桌面连接你的凭据不工作解决方法 方法/步骤 第一步我们首先需要知道远程桌面连接你的凭据不工作原因是&#xff0c;远程的电脑拒绝了访问&#xff0c;需要设置在远程的电脑上设置安全选项&#xff0c;按winR键&#xff0c;打开运行&#xff0c;输入“gpedit.msc”&a…

GJ Round 2025赛季

Round 1 (9.1) A给定正整数序列 \(a_1,a_2,\cdots,a_n\),对于 \(\forall k \in [0,n] \cap \mathbb Z\),完成以下问题: 令 \(S \subseteq A = \{1,2,\cdots,n\}\),当且仅当存在一个集合 \(T \subseteq S\),满足 \…

resolvers: [ElementPlusResolver()] 有什么用? - 详解

resolvers: [ElementPlusResolver()] 有什么用? - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&…

ASP.NET Core 中读取 UserAgent 的正确姿势

今天读了 Andrew Lock 的2篇博文学到的招式,记录一下。 两篇博文的链接:Using default interface methods for performance gains in IHeaderDictionary A brief look at StringValues之前的读取 UserAgent 的代码:…

Git学习记录(二):代码patch

Git中的一笔commit提交,可以成为patch生成Patch带有commit信息: git format-patch -1 HEAD only代码应用Patchcheck是否有冲突 git apply --check 0001-xxx.patch 应用Patchgit apply 0001-xxxx.patch git am 0001-xx…

网站开发有关费用网站建设服务费一年多少钱

Ubuntu从起后居然把Windows的设置给记住了。显示ok。我晕。以前倒是也有过这问题&#xff0c;在双系统情况下&#xff0c;外接键盘的灯会继承Windows的早就有心弄个显示器&#xff0c;把笔记本的外接上&#xff0c;倒不是说非要2个屏幕来工作如何如何&#xff1f;只是因为我的本…

2025年10月化妆品代工厂最新推荐排行榜:聚焦 OEM/ODM/ 网红爆款需求,精选优质企业助品牌高效合作

2025 年化妆品 ODM 行业规模预计突破 1128 亿元,功效型护肤等细分领域增速迅猛,但行业内企业资质悬殊问题突出。部分代工企业缺乏核心研发能力,配方同质化严重难以适配 “成分党” 需求;部分生产标准落后,未达十万…

西安地产网站制作公司四川网站建设公司 登录

## 路由与伪静态### 路由>[info] 字面上解释&#xff0c;路是线路&#xff0c;道路&#xff1b;由&#xff0c;缘由&#xff0c;指意&#xff0c;表示规则&#xff1b;所以意思就是按照什么规则&#xff0c;或者意义&#xff0c;被指派到什么地方去。所以路由是指线路分发&a…

Exchange安全漏洞分析:ProxyOracle攻击链详解

本文深入分析Microsoft Exchange中的ProxyOracle攻击链,包含CVE-2021-31195 XSS漏洞和CVE-2021-31196填充Oracle攻击,攻击者可通过恶意链接获取用户明文密码,涉及FBA认证机制和加密cookie解析过程。Orange:MS Exch…

北京建站公司哪家好都选万维科技电脑维护网站模板

题目链接 2865. 美丽塔 I - 力扣&#xff08;LeetCode&#xff09; 解题思路 根据题意可以知道&#xff0c;假设数组的长度为n,对于山状数组heights定义如下&#xff1a; 假设heights[i]为数组中的最大值&#xff0c;则i左边的值均小于等于heights[i]&#xff0c;i右边的值…