面试-核心篇

数据存储redis

二、说说反模式设计:反范式,表数据冗余数据库

三、说说分库与分表设计:用户中心,用户id维度分库分表,经过mod用户id或者hash等方式来实现数据路由缓存

四、分库与分表带来的分布式困境与应对之策:分布式事务,采用分布式事务系统|表关联查询,拆分跨表查询脚本|..异步

五、说说 SQL 优化之道:explain,索引,冗余分布式

六、MySQL 遇到的死锁问题性能

七、存储引擎的 InnoDB 与 MyISAM:InnoDB支持事务--MyISAM不支持,InnoDB支持行级锁,表锁--MyISAM只支持表锁优化

八、数据库索引的原理:B+树ui

九、为何要用 B-tree线程

十、汇集索引与非汇集索引的区别:汇集索引的数据记录物理顺序一致,非汇集索引B+树设计

十一、limit 20000 加载很慢怎么解决:排序+ID限制范围

十二、选择合适的分布式主键方案:db的,sequnce(tair),uuid。。。

1三、选择合适的数据存储方案:

1四、ObjectId 规则:

1五、聊聊 MongoDB 使用场景

1六、倒排索引:搜索的反向索引

1七、聊聊 ElasticSearch 使用场景

缓存使用
一、Redis 有哪些类型:set,zset,list,string,hash

二、Redis 内部结构:

三、聊聊 Redis 使用场景:高性能,缓存

四、Redis 持久化机制:aof(增量)/rdb(全量)

五、Redis 如何实现持久化:aof阻塞落盘/rdb进程异步落盘

六、Redis 集群方案与实现:客户端分片(jedis)/基于代理的分片(codis)/路由查询(redis-cluster)

七、Redis 为何是单线程的:缓存主要耗费的是IO,不是CPU,因此单线程已经知足要求

八、缓存奔溃

九、缓存降级

十、使用缓存的合理性问题

消息队列
一、消息队列的使用场景:异步化(注册发邮件),削峰()

二、消息的重发补偿解决思路:重试+幂等性

三、消息的幂等性解决思路:id记录表

四、消息的堆积解决思路:定位堆积的缘由

五、本身如何实现消息队列:

六、如何保证消息的有序性:在选择broker的时候采用mod业务id的方式,让同一个业务id数据路由到同一个broker(rocketmq)

相关文章
相关标签/搜索