手撕面試官系列(四 ):MongoDB+Redis 面試專題

MongoDB


(面試題+答案領取方式見個人主頁)

  1. 你說的 NoSQL 數據庫是什麼意思?NoSQL 與 RDBMS 直接有什麼區別?爲什麼要使用和不使用NoSQL 數據庫?說一說 NoSQL 數據庫的幾個優點?
  2. NoSQL 數據庫有哪些類型?
  3. MySQL 與 MongoDB 之間最基本的差別是什麼?
  4. 你怎麼比較 MongoDB、CouchDB 及 CouchBase?
  5. MongoDB 成爲最好 NoSQL 數據庫的原因是什麼?
  6. 32 位系統上有什麼細微差別?
  7. journal 回放在條目(entry)不完整時(比如恰巧有一箇中途故障了)會遇到問題嗎?
  8. 分析器在 MongoDB 中的作用是什麼?
  9. 名字空間(namespace)是什麼?
  10. 如果用戶移除對象的屬性,該屬性是否從存儲層中刪除?
  11. 能否使用日誌特徵進行安全備份?
  12. 允許空值 null 嗎?
  13. 更新操作立刻 fsync 到磁盤?
  14. 如何執行事務/加鎖?
  15. 爲什麼我的數據文件如此龐大?
  16. 啓用備份故障恢復需要多久?
  17. 什麼是 master 或 primary?
  18. 什麼是 secondary 或 slave?
  19. 我必須調用 getLastError 來確保寫操作生效了麼?
  20. 我應該啓動一個集羣分片(sharded)還是一個非集羣分片的 MongoDB 環境?
  21. 分片(sharding)和複製(replication)是怎樣工作的?
  22. 數據在什麼時候纔會擴展到多個分片(shard)裏?
  23. 當我試圖更新一個正在被遷移的塊(chunk)上的文檔時會發生什麼?
  24. 如果在一個分片(shard)停止或者很慢的時候,我發起一個查詢會怎樣?
  25. 我可以把 moveChunk 目錄裏的舊文件刪除嗎?
  26. 我怎麼查看 Mongo 正在使用的鏈接?
  27. 如果塊移動操作(moveChunk)失敗了,我需要手動清除部分轉移的文檔嗎?
  28. 如果我在使用複製技術(replication),可以一部分使用日誌(journaling)而其他部分則不使用嗎?
  29. 當更新一個正在被遷移的塊(Chunk)上的文檔時會發生什麼?
  30. MongoDB 在 A:{B,C}上建立索引,查詢 A:{B,C}和 A:{C,B}都會使用索引嗎?
  31. 如果一個分片(Shard)停止或很慢的時候,發起一個查詢會怎樣?
  32. MongoDB 支持存儲過程嗎?如果支持的話,怎麼用?
  33. 如何理解 MongoDB 中的 GridFS 機制,MongoDB 爲何使用 GridFS 來存儲文件?

Redis (一)

  1. redis 和 和 memcached 什麼區別?爲什麼高併發下有時單線程的 redis 比多線程的memcached 效率要高?
  2. redis 主從複製如何實現的?redis 的集羣模式如何實現?redis 的 的 key 是如何尋址的?
  3. 使用 redis 如何設計分佈式鎖?說一下實現思路?使用 zk 可以嗎?如何實現?這兩種有什麼區別?
  4. 知道 redis 的持久化嗎?底層如何實現的?有什麼優點缺點?
  5. redis 過期策略都有哪些?LRU 算法知道嗎?寫一下 java 代碼實現?
  6. 緩存穿透、緩存擊穿、緩存雪崩解決方案?
  7. 在選擇緩存時,什麼時候選擇 redis ,什麼時候選擇
  8. 緩存與數據庫不一致怎麼辦
  9. 主從數據庫不一致如何解決
  10. Redis 常見的性能問題和解決方案
  11. Redis 的數據淘汰策略有哪些
  12. Redis 當中有哪些數據結構
  13. 假如 Redis 裏面有 1 億個 key ,其中有 10w 個 個 key 是以某個固定的已知的前綴開頭的,如果將它們全部找出來?
  14. 使用 Redis 做過異步隊列嗎,是如何實現的
  15. Redis 如何實現延時隊列

Redis (二)

  1. 什麼是 Redis?簡述它的優缺點?
  2. Redis 相比 memcached 有哪些優勢?
  3. Redis 支持哪幾種數據類型?
  4. Redis 主要消耗什麼物理資源?
  5. Redis 的全稱是什麼?
  6. Redis 有哪幾種數據淘汰策略?
  7. Redis 官方爲什麼不提供 Windows 版本?
  8. 一個字符串類型的值能存儲最大容量是多少?
  9. 爲什麼 Redis 需要把所有數據放到內存中?
  10. Redis 集羣方案應該怎麼做?都有哪些方案?
  11. Redis 集羣方案什麼情況下會導致整個集羣不可用?
  12. MySQL 裏有 2000w 數據,redis 中只存 20w 的數據,如何保證 redis
  13. Redis 有哪些適合的場景?
  14. Redis 支持的 Java 客戶端都有哪些?官方推薦用哪個?
  15. Redis 和 Redisson 有什麼關係?
  16. Jedis 與 Redisson 對比有什麼優缺點?
  17. Redis 如何設置密碼及驗證密碼?
  18. 說說 Redis 哈希槽的概念?
  19. Redis 集羣的主從複製模型是怎樣的?
  20. Redis 集羣會有寫操作丟失嗎?爲什麼?
  21. Redis 集羣之間是如何複製的?
  22. Redis 集羣最大節點個數是多少?
  23. Redis 集羣如何選擇數據庫?
  24. 怎麼測試 Redis 的連通性?
  25. Redis 中的管道有什麼用?
  26. 怎麼理解 Redis 事務?
  27. Redis 事務相關的命令有哪幾個?
  28. Redis key 的過期時間和永久有效分別怎麼設置?
  29. Redis 如何做內存優化?
  30. Redis 回收進程如何工作的?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章