<b>1.4 用好redis的建議</b>
1.?切勿當作黑盒使用,開發與運維同樣重要
很多使用redis的開發者認為隻要會用api開發相應的功能就可以,更有甚者認為redis就是get、set、del,不需要知道redis的原理。但是在我們實際運維和使用redis的過程中發現,很多線上的故障和問題都是由于完全把redis當做黑盒造成的,如果不了解redis的單線程模型,有些開發者會在有上千萬個鍵的redis上執行keys *操作,如果不了解持久化的相關原理,會在一個寫操作量很大的redis上配置自動儲存rdb。而且在很多公司内隻有專職的關系型資料庫dba,并沒有nosql的相關運維人員,也就是說開發者很有可能會自己運維redis,對于redis的開發者來說既是好事又是壞事。站在好的方面看,開發人員可以通過運維redis真正了解redis的一些原理,不單純停留在開發上。站在壞的方面看,redis的開發人員不僅要支援開發,還要承擔運維的責任,而且由于運維經驗不足可能會造成線上故障。但是從實際經驗來看,運維足夠規模的redis會對用好redis更加有幫助。
2.?閱讀源碼
我們在前面提到過,redis是開源項目,由于作者對redis代碼的極緻追求,redis的代碼量相對于許多nosql資料庫來說是非常小的,也就意味着作為普通的開發和運維人員也是可以“吃透”redis的。通過閱讀優秀的源碼,不僅能夠加深我們對于redis的了解,而且還能提高自身的編碼水準,甚至可以對redis做定制化,也就是說可以修改redis的源碼來滿足自身的需求,例如新浪微網誌在redis的早期版本上做了很多的定制化來滿足自身的需求,豌豆莢也開源基于proxy的redis分布式實作codis。