当前位置: 首页 > news >正文

台州外贸网站建设网站seo课设

台州外贸网站建设,网站seo课设,小米发布会ppt,网络架构三层Redis的过期删除策略和内存淘汰机制以及如何保证双写的一致性 过期删除策略内存淘汰机制怎么保证redis双写的一致性?更新策略先删除缓存后更新数据库先更新数据库后删除缓存如何选择?如何保证先更新数据库后删除缓存的线程安全问题? 过期删除策略 为了…

Redis的过期删除策略和内存淘汰机制以及如何保证双写的一致性

  • 过期删除策略
  • 内存淘汰机制
  • 怎么保证redis双写的一致性?
    • 更新策略
    • 先删除缓存后更新数据库
    • 先更新数据库后删除缓存
    • 如何选择?
    • 如何保证先更新数据库后删除缓存的线程安全问题?



过期删除策略

为了保证缓存和数据的一致性和节省缓存空间,就可以给存储的数据设置过期时间,而对于过期键的删除,redis以下三种策略,分别是定时删除、惰性删除、定期删除。

定时删除策略:在给键设置过期时间的同时,创建一个定时事件,当到达事件时,会执行事件删除过期键
优点:缓存能够及时被删除,占用的缓存可以被及时释放
缺点:当键比较多时,定时删除策略会占用;一部分cpu时间,浪费性能
惰性删除策略:不会主动删除过期键,每次访问该键时都会检验是否过期,如果过期就会删除过期键
优点:不会浪费过多性能
缺点:可能会造成大量过期键的堆积,浪费内存空间
定期删除策略:每割一段时间都会随机抽选一些键检查是否过期。
定期删除过程:1.每一秒进行十次检查(可以自定义修改)
2.每次检查都会随机抽取20个键进行检查,如果检查的键中过期的超过五个,也就是四分之一,则继续执行2,否则进入下一次检查
为了避免循环过度和死循环,redis每次检查都设置了超时时间,默认未25ms
优点:通过限制删除操作执行的时长和频率,减少对cpu的影响,同时清理一部分内存
缺点:内存清除方面没有定时删除好,对系统资源的消耗又没有惰性删除少。并且删除的频率不好控制

内存淘汰机制

当redis的内存不足时,当仍然有需要缓存的请求到达时,需要使用内存淘汰机制进行处理
删除过期键策略
volatile-lru:从设置过期删除的键中,选择最近最少使用的键值删除
volatile-lfu: 选择最少使用的键值删除
volatile-random: 随机挑选键值删除
volatile-ttl:选择将要过期的键值删除
删除所有键策略
allkeys-lru:从所有键中,选择最近最少使用的键值删除
allkeys-lfu:选择最少使用
allkeys-random:随机挑选键值删除
不做任何处理
noeviction:不淘汰键值,报错禁止写入
当前redis的默认内存淘汰机制就是noeviction

怎么保证redis双写的一致性?

如果有更新数据库的操作时,我们需要怎么操作缓存才能保证双写的一致性,是更新缓存还是删除缓存

更新策略

更新策略的问题
1.可能造成无效更新。

如果连续执行一百个更新数据库的操作,那么就要更新一百次缓存,那么中间九十九次更新就是无效更新了。

2.可能造成线程安全问题。如下图

在这里插入图片描述

线程A:
Time1:更新数据库
Time4:更新缓存
线程B
Time2:更新数据库
Time3:更新缓存
按照以上的执行顺序,更新后的数据库是线程B更新的值,而缓存时线程A更新的值,此时数据库和缓存不一致,造成线程安全问题,因此避免使用更新策略

先删除缓存后更新数据库

可能会造成线程安全问题,如下

在这里插入图片描述
当线程A删除缓存后还没有更新数据库,线程B查询数据没有命中缓存从原数据库中查询旧数据并且放入缓存中,导致缓存中存在旧数据,造成了数据库和缓存不一致的问题

先更新数据库后删除缓存

存在线程安全问题,如下
在这里插入图片描述
线程A查询数据,如果此时由于缓存过期导致缓存失效,开始查询数据库,线程B相继更新数据库删除缓存,Time4线程A将查询出的旧数据放入缓存,导致缓存和数据库不一致

如何选择?

选择先更新数据库后删除缓存。更新缓存存在可能会造成更新失效和线程安全问题,优先将更新策略排除。而先删除缓存策略相对后删除缓存策略,它发生的可能性更高,因此我们选择先更新数据库后删除缓存的策略。

如何保证先更新数据库后删除缓存的线程安全问题?

我们可以使用延迟双删策略,即更新数据库和删除缓存之后让线程休眠一段时间再次删除缓存。但是这并不能严格的保证线程安全问题,如果要保证数据的高一致性,可以使用分布式锁来实现。

http://www.zhongyajixie.com/news/22029.html

相关文章:

  • php自己做网站seo需要懂代码吗
  • 网站做采集会有问题么企业关键词排名优化网址
  • 伪静态网站如何做装修公司网络推广方案
  • 网站建设成本估算郑州网站制作选择乐云seo
  • 网站文章做百度排名百度云网页版入口
  • 网站设计个人网店培训骗局
  • 搭建网站的流程和方法站长工具 seo查询
  • 新手学做网站txt下载搜索热门关键词
  • wordpress调二级分类目录网站排名优化服务公司
  • 沈阳市和平区建设局网站域名注册
  • 玩车 wordpress北京百度网站排名优化
  • 测网站打开的速度的网址seo排名优化app
  • 电子工程建设信息网站友情链接工具
  • 东莞网站建设美丽公司网站seo公司
  • 建设投资平台网站百度怎么精准搜索
  • 太原经济型网站建设价格seo入门教程
  • 西宁微网站建设多少钱搜索引擎关键词怎么选
  • 求创意设计分享的网站南宁关键词排名公司
  • 广州专业网页制作seo黑帽教学网
  • 类似于pinterest的设计网站网络推广途径
  • 精神文明建设专题网站营销型网站设计
  • 手机浏览器 网站开发竞价代运营公司哪家好
  • 网站需要人员品牌营销策划机构
  • 节能环保公司网站建设一元友情链接平台
  • 记录网站 自己做百度快速排名化
  • 怎么做网站跳转seo页面内容优化
  • wordpress显示评论北京搜索引擎优化seo专员
  • wordpress mysql配置文件天津seo招聘
  • 长春企业免费建站搜客
  • 焦溪翠冠梨做的网站谷歌外贸seo