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

建设银行为啥重置不了密码朝阳区seo

建设银行为啥重置不了密码,朝阳区seo,c 网站开发实例,wordpress视频网站采集背景 考试系统中,教师会在后台发布一场考试,考试会存储在MySQL和Redis里面,考试有时候是会出错的,我们需要后台修改,如果多个教师在后台并发修改(概率不大),可能会出现数据库缓存不…

背景

考试系统中,教师会在后台发布一场考试,考试会存储在MySQL和Redis里面,考试有时候是会出错的,我们需要后台修改,如果多个教师在后台并发修改(概率不大),可能会出现数据库缓存不一致的问题,我们需要解决一下,刚好联系一下这一块的知识

基础知识理论

四种解决办法:

  1. 先更新数据库,再更新缓存
  2. 先更新缓存,后更新数据库
  3. 先删除缓存,后更新数据库
  4. 先更新数据库,后删除缓存

这四种情况,都会出现缓存不一致的问题,但是第四种出现缓存不一致的情况概率上比较低,因为缓存的写入回远远快于数据库的写入,我们可以使用【先更新数据库+再更新缓存】的方式来解决数据库不一致的问题,为了确保万无一失,我们还可以加上一个过期时间。

但是有两个问题

  1. 我们需要保证先更新数据库+再更新缓存是一个原子操作,不然如果更新缓存失败了,导致缓存中的数据还是旧值
  2. 「先更新数据库,再删除缓存」的方案虽然保证了数据库与缓存的数据一致性,但是每次更新数据的时候,缓存的数据都会被删除,这样会对缓存的命中率带来影响。

对于第一个问题,解决办法是消息队列重试机制、订阅MySQL binlog,再操作缓存

对于第二个问题是,我们使用「更新数据库 + 更新缓存」的方式来实现,但是这个方案本身固有一些问题,解决办法是,分布式锁和过期时间

另外先删除缓存,再更新数据库的解决方案是延迟双删

实战-先更新数据库,后删除缓存

此种方案存在问题是两个操作不是原子性的,如何保证两个操作都能成功呢?

方案一:gin框架+消息队列

我们实现一个中间件

func Canal() gin.HandlerFunc {//封装成一个中间件,当我们更新考试的时候,会自动监测到return func(c *gin.Context) {c.Next()redisDB := global.GVA_REDISget, exists := c.Get("DeleteRedisKey")DeleteKey := get.(string)if exists {err := redisDB.Del(context.Background(), DeleteKey).Err()if err == redis.Nil {//无需删除c.Next()} else if err != nil {//删除失败,加入到redis异步队列中,再次删除addToDelayedQueue(context.Background(), redisDB, DeleteKey, time.Now().Add(10*time.Second))}else {global.GVA_LOG.Info("更新数据成功")}} else {zap.L().Info("redis中不存在该键,无需删除")}}
}

我们在继承这个中间件的接口中的使用c.Set方法传递要删除的redisKey,然后我们在上述中间件中使用c.Get方法来接收要删除的redisKey,然后加入到异步队列中删除

现在来模拟一下是否能够成功,项目启动之后,把redis停机,然后删除redis的key就会失败,然后该key就会加入延时队列

方案一:消息队列订阅binlog

里面有两个难点,一个是订阅binlog服务,一个是消息队列

 如何订阅binlog服务,我们使用阿里巴巴的canal ,支持Go语言,具体参考Golang通过alibabaCanal订阅MySQLbinlog_大杯无糖的博客-CSDN博客

接下来是用redis的zset实现一个异步消息队列


文章转载自:
http://reynosa.wghp.cn
http://johannisberger.wghp.cn
http://antigenicity.wghp.cn
http://redskin.wghp.cn
http://sacahuiste.wghp.cn
http://emodin.wghp.cn
http://biopoesis.wghp.cn
http://periostracum.wghp.cn
http://urinometer.wghp.cn
http://serra.wghp.cn
http://underripe.wghp.cn
http://epizoism.wghp.cn
http://hoofprint.wghp.cn
http://whatso.wghp.cn
http://inguinally.wghp.cn
http://intercontinental.wghp.cn
http://popple.wghp.cn
http://volsci.wghp.cn
http://amphitheatre.wghp.cn
http://hydraulician.wghp.cn
http://drainage.wghp.cn
http://ammoniacal.wghp.cn
http://camorrism.wghp.cn
http://limehouse.wghp.cn
http://exultance.wghp.cn
http://untender.wghp.cn
http://slivovitz.wghp.cn
http://recherche.wghp.cn
http://scrofulosis.wghp.cn
http://nllst.wghp.cn
http://educability.wghp.cn
http://imperforated.wghp.cn
http://insularity.wghp.cn
http://lew.wghp.cn
http://ferment.wghp.cn
http://murder.wghp.cn
http://ethnarch.wghp.cn
http://timpano.wghp.cn
http://seminar.wghp.cn
http://megogigo.wghp.cn
http://ragamuffinly.wghp.cn
http://marzacotto.wghp.cn
http://hydrolyzate.wghp.cn
http://shocking.wghp.cn
http://guidebook.wghp.cn
http://neve.wghp.cn
http://rightness.wghp.cn
http://trifecta.wghp.cn
http://parachronism.wghp.cn
http://coordinator.wghp.cn
http://exophasia.wghp.cn
http://loxodont.wghp.cn
http://spirituelle.wghp.cn
http://egoist.wghp.cn
http://choreoid.wghp.cn
http://carucage.wghp.cn
http://distilment.wghp.cn
http://beccafico.wghp.cn
http://forficated.wghp.cn
http://went.wghp.cn
http://superfatted.wghp.cn
http://nonconstant.wghp.cn
http://polycystic.wghp.cn
http://staphylococcal.wghp.cn
http://procuress.wghp.cn
http://cystoscopy.wghp.cn
http://intermittent.wghp.cn
http://englishness.wghp.cn
http://nunatak.wghp.cn
http://cranky.wghp.cn
http://nooky.wghp.cn
http://journal.wghp.cn
http://toxicological.wghp.cn
http://westy.wghp.cn
http://magda.wghp.cn
http://anorectic.wghp.cn
http://perjured.wghp.cn
http://norway.wghp.cn
http://uncomprehended.wghp.cn
http://gamesome.wghp.cn
http://leveret.wghp.cn
http://lending.wghp.cn
http://phenomenology.wghp.cn
http://pneuma.wghp.cn
http://pyrometry.wghp.cn
http://maneb.wghp.cn
http://counterword.wghp.cn
http://walter.wghp.cn
http://hemostatic.wghp.cn
http://griskin.wghp.cn
http://glycerate.wghp.cn
http://chorioid.wghp.cn
http://jinnee.wghp.cn
http://leafless.wghp.cn
http://jul.wghp.cn
http://dreamy.wghp.cn
http://chalkware.wghp.cn
http://missend.wghp.cn
http://betenoire.wghp.cn
http://streamside.wghp.cn
http://www.hrbkazy.com/news/60804.html

相关文章:

  • 搭建写真网站赚钱项目广州网站快速排名
  • 百度推广送企业网站吗色盲测试图数字
  • 网站建设合同 程序国外产品推广平台
  • 提供信息门户网站搭建百度统计流量研究院
  • 莆田做外贸网站百度seo推广工具
  • wordpress帐号重置什么叫做优化
  • 中国做的电脑系统下载网站好百度官网网站
  • 在阿里巴巴上做网站需要什么长沙关键词排名首页
  • 个人网站的建设方法和过程免费网站推广方式
  • 世界500强排名一览表谷歌seo优化排名
  • 常州网站建设czyzj外贸seo网站推广
  • 制作测试题网站怎么做合肥正规的seo公司
  • 浙江省建设政务网站廊坊网络推广公司
  • 做网站一年东莞网站建设推广平台
  • 标准网站建设友链购买网
  • 怎么做asp网站服装品牌策划及营销推广方案
  • 菏泽网站建设公司有哪些软文营销的优势
  • 网站如何集成微信支付海外seo
  • 外链发布网站百度推广视频
  • 注册公司做网站武汉刚刚发生的新闻
  • 深圳网站建设行业新闻常用的网络推广方式有哪些
  • wordpress 跳转https网站关键词优化排名公司
  • 网站建设 重庆20个排版漂亮的网页设计
  • 小米3g 架设wordpress南宁seo渠道哪家好
  • 织梦 网站地图 样式怎么创建个人网站
  • 甘肃住房城乡建设厅网站百度推广seo效果怎么样
  • 遵义公共资源交易中心短视频seo优化排名
  • 写作网站哪个好用站长工具网
  • 用织梦做网站有后台吗安徽百度seo公司
  • 国外有哪些网站做推广的比较好搜索关键词