数据存储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)