阿里云网站建设的实训报告网站制作的相关术语有哪些
web/
2025/10/9 1:34:12/
文章来源:
阿里云网站建设的实训报告,网站制作的相关术语有哪些,举报不良网站信息怎么做,wordpress add_action do_action14.5 缓存数据的删除和替换
14.5.1 过期数据
可以使用ttl查看key的状态。已过期的数据#xff0c;redis并未马上删除。优先去执行读写数据操作#xff0c;删除操作延后执行。
14.5.2 删除策略
redis中每一个value对应一个内存地址#xff0c;在expires#xff0c;一个内…14.5 缓存数据的删除和替换
14.5.1 过期数据
可以使用ttl查看key的状态。已过期的数据redis并未马上删除。优先去执行读写数据操作删除操作延后执行。
14.5.2 删除策略
redis中每一个value对应一个内存地址在expires一个内存地址对应一个时间截如果达到指定时间就完成删除处理 三种删除策略 定时删除创建一个定时器当key设置过期时间已到达删除key,同时expires中也删除 优点节约内存缺点对于cpu实时处理压力影响对redis执行的效率有影响 惰性删除数据到达过期时间先不做删除直到下次访问该数据时再做删除以空间换时间 执行流程在get数据时先执行redis中一个内部函数 expireIfNeeded()如果没有过期就返回如果已过期就删除返回-2优点节约CPU资源缺点内存占用过大。 定期删除 redis启动服务时读取server.hz的值默认为10可以通过info server指令查看每秒钟执行server.hz次定时轮询调用serverCron()函数函数中又执行databasesCron()对16数据库进行轮询执行了activeExpireCycle()检测其中元素的过期情况。每次轮询都执行250ms/server.hz时长。随机从对应的库中抽取20个(默认)key进行检测如果key已过期则删除key如果一轮中删除的key数量w*25%则再次循环刚才的过程如果一轮中删除的key数量w*25%则开始检查下一个库
redis中使用惰性删除和定期删除
14.5.3 逐出算法
通过 配置文件 maxmemory bytes来设置最大缓存容量。一般情况建议设置为总数据的15%到30%在实际生产环境下可以设置50%。如果不设置默认全部使用
redis缓存淘汰策略 #mermaid-svg-CaH7eXBens081i9k {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-CaH7eXBens081i9k .error-icon{fill:#552222;}#mermaid-svg-CaH7eXBens081i9k .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-CaH7eXBens081i9k .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-CaH7eXBens081i9k .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-CaH7eXBens081i9k .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-CaH7eXBens081i9k .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-CaH7eXBens081i9k .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-CaH7eXBens081i9k .marker{fill:#333333;stroke:#333333;}#mermaid-svg-CaH7eXBens081i9k .marker.cross{stroke:#333333;}#mermaid-svg-CaH7eXBens081i9k svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-CaH7eXBens081i9k .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-CaH7eXBens081i9k .cluster-label text{fill:#333;}#mermaid-svg-CaH7eXBens081i9k .cluster-label span{color:#333;}#mermaid-svg-CaH7eXBens081i9k .label text,#mermaid-svg-CaH7eXBens081i9k span{fill:#333;color:#333;}#mermaid-svg-CaH7eXBens081i9k .node rect,#mermaid-svg-CaH7eXBens081i9k .node circle,#mermaid-svg-CaH7eXBens081i9k .node ellipse,#mermaid-svg-CaH7eXBens081i9k .node polygon,#mermaid-svg-CaH7eXBens081i9k .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-CaH7eXBens081i9k .node .label{text-align:center;}#mermaid-svg-CaH7eXBens081i9k .node.clickable{cursor:pointer;}#mermaid-svg-CaH7eXBens081i9k .arrowheadPath{fill:#333333;}#mermaid-svg-CaH7eXBens081i9k .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-CaH7eXBens081i9k .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-CaH7eXBens081i9k .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-CaH7eXBens081i9k .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-CaH7eXBens081i9k .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-CaH7eXBens081i9k .cluster text{fill:#333;}#mermaid-svg-CaH7eXBens081i9k .cluster span{color:#333;}#mermaid-svg-CaH7eXBens081i9k div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-CaH7eXBens081i9k :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 淘汰策略 noevction不淘汰 进行数据淘汰 过期数据淘汰 所有数据淘汰 volatile-lru volatile-lfu volatile-ttl volatile-random allkeys-lru allkeys-lfu allkeys-random 在redis默认情况下不进行数据淘汰noevction,一旦缓存被写满了再有写请求redis直接返回错误。
过期数据淘汰策略先限定了数据都是在过期范围。
valotile-ttl在进行筛选时根据过期时间先后顺序进行一个删除越早过期的越先被删除valotile-random在设置了过期时间的键值对中进行随机删除valotile-lru会使用LRU算法筛选设置了过期的键值对valotile-lfu会使用LFU算法筛选设置了过期的键值对
所有数据淘汰策略
allkeys-random从所有键值对中随机筛选并删除allkeys-lru从所有键值对中采用LRU算法进行筛选删除allkeys-lfu从所有键值对中采用LFU算法进行筛选删除
LRU算法 算法Least Recently Used最近最少使用原则最近不用的数据会被筛选出来最近频繁使用的数据会保留
lru算法需要使用链表来管理所有缓存数据带来内存开销。有数据被访问时需要执行链表数据的移动会降低redis性能。
记录数据最后一次访问的时间截第一次会随机选出N个数据,作为一个候选集合作一个排序再把lru最小的数据进行淘汰
上面提到的N的配置maxmemory-samples 5
LFU算法 算法Least Frequently Used最不常用原则。根据历史访问频率来淘汰数据。
每个数据块都有一个引用计数,按引用计数来排序。如果引用计数相同按照时间排序
新加入的数据放在队尾引用计为1当数据被访问引用计数增加队列重排当需要淘汰数据时将队列尾部的数据块删除
逐出算法选择maxmemory-policy noeviction
优先使用allkeys-lru策略。如果业务数据访问频率差别不大可以建议使用allkeys-random。首推的新闻、置顶视频不设置过期时间可以建议使得volatile-lru。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89374.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!