面試-核心篇

數據存儲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)

相關文章
相關標籤/搜索