大厂面试01期】高并发场景下,如何保证缓存与数据库一致性?

《大厂面试指北》项目截图: 获取《大厂面试指北》离线PDF版,请扫描下方二维码关注公众号“大厂面试” 面试题:高并发场景下,如何保证缓存与数据库一致性?问题分析我们日常开发中,对于缓存用的最多的场景就像下图一样,可能仅仅是对数据进行缓存,减轻数据库压力,缩短接口响应时间。 这种方案在不需要考虑高并发得去写缓存,高并发得读写缓存时,是不会有问题,但是如果是在高并发场景下,要保证缓存和数据库的一致性,至少...

大厂面试02期】Redis过期key是怎么样清理的?

在Redis中,对于过期key的清理主要有惰性清除,定时清理,内存不够时清理三种方法,下面我们就来具体看看这三种清理方法。(1)惰性清除在访问key时,如果发现key已经过期,那么会将key删除。(2)定时清理Redis配置项hz定义了serverCron任务的执行周期,默认每次清理时间为25ms,每次清理会依次遍历所有DB,从db随机取出20个key,如果过期就删除,如果其中有5个key过期,那...

大厂面试03期】MySQL是怎么解决幻读问题的?

问题分析首先幻读是什么?根据MySQL文档上面的定义 幻读指的是在一个事务内,同一SELECT语句在不同时间执行,得到不同的结果集时,就会发生所谓的幻读问题。可以看看下面的例子:这是网上找的一张图(事务的务字写错了,不过不影响我们理解) 假设这个例子中的MySQL的隔离级别是提交读,也就是一个事务内可以读到其他事务提交后的结果。那么事务1第一次查询dept表中所有部门时,结果是没有"研发部",但是...

大厂面试04期】讲讲一条MySQL更新语句是怎么执行的?

流程图这是在网上找到的一张流程图,写的比较好,大家可以先看图,然后看详细阅读下面的各个步骤。 执行流程:1.连接验证及解析客户端与MySQL Server建立连接,发送语句给MySQL Server,接收到后会针对这条语句创建一个解析树,然后进行优化,(解析器知道语句是要执行什么,会评估使用各种索引的代价,然后去使用索引,以及调节表的连接顺序)然后调用innodb引擎的接口来执行语句。2.写undo...

大厂面试05期】说一说你对MySQL中锁的了解?

这是我总结的一个表格,是本文中涉及到的锁(因为篇幅有限就没有包括自增锁) 1.数据库级别的锁数据库级别的锁有以下两种:1.1.全局读锁对数据库执行Flush tables with read lock命令让整个库处于只读状态。1.2.让全局只读执行set global readonly=true这个命令也可以让全库只能读,但是第一有些系统会使用readonly来做一个操作,例如根据readonly...

大厂面试06期】谈一谈你对Redis持久化的理解?

Redis持久化是面试中经常会问到的问题,这里主要通过对以下几个问题进行分析,帮助大家了解Redis持久化的实现原理。1.Redis持久化是什么?2.Redis持久化有哪些策略?各自的实现原理是怎么样的?3.Redis的数据恢复策略是怎么样的?4.Redis持久化策略该如何进行选择?1.Redis持久化是什么?因为Redis是一个内存数据库,数据保存在内存中,一旦发生关机或者重启,内存中的数据都...
© 2020 LMLPHP 关于我们 联系我们 友情链接 耗时0.092122(s)
2020-07-13 03:19:03 1594581543