熟練使用Shell腳本,而且可以完成不少自動化的工做;php
熟悉awk/sed/perl 操做技術,可以完成大部分文本處理和數據統計等工做;mysql
精通Linux程序(包括各類庫、包、第三方依賴等等,好比MongoDB/Redis/Sphinx/Luncene/SVN之類的);nginx
熟悉Linux服務,好比如何查看Linux的性能指標數據,好比Linux基礎下面的問題跟蹤等。web
02redis
精通Nginx配置、多核配置、events、proxy_pass,sendfile/tcp_配置,瞭解超時等相關配置和性能影響;sql
知道nginx除了web server,還可以承擔代理服務器、反向靜態服務器等配置;熟悉nginx配置調優、權限配置;數據庫
熟悉的nginx運行原理(master/worker機制,epoll),而且可以區分nginx 跟apache的區別和聯繫;apache
03設計模式
熟悉MySQL優化(group by/order by/rand優化等),掌握不少小技巧,熟悉MySQL搭建、冷熱備份MySQL數據;瀏覽器
熟悉可以影響innodb/myisam性能的配置選項(好比key_buffer/query_cache /sort_buffer/innodb_buffer_pool_size/innodb_flush_log_at_trx_commit等);
熟練mysql主從同步的環境,熟悉各個binlog_format的區別;
瞭解MySQL的性能追查,包括slow_log/explain等,熟悉基本的索引創建以及優化處理等知識;
原理方面瞭解基本的MySQL的架構 (Server+存儲引擎),瞭解基本的InnoDB/MyISAM索引存儲結構和不一樣(聚簇索引,B樹);
瞭解基本的InnoDB事務處理機制;
瞭解大部分MySQL異常狀況的處理方案(或者知道哪兒找處處理方案)。
熟悉NoSQL的表明MongoDB數據庫,對比nosql跟 MySQL的差異,同時可以結合使用MongoDB。
04
基本全部的中型系統裏面都會涉及到緩存處理,因此必定要熟悉緩存的使用和它存在的一些緩存隱患問題以及解決方案;
知道Memcached和Redis的異同和應用場景以及安裝配置,瞭解Memcahed的特性和優缺點,好比最大的value值;
熟悉Redis的基本工做原理和使用,好比基礎的數據類型以及應用場景,瞭解Redis的事務、隊列等等。
原理部分,熟悉Memcached的內存結構 (slab機制),或者redis經常使用數據類型底層實現存儲結構(SDS/鏈表/SkipList/HashTable)等等,瞭解Redis 的持久化機制以及RDB、AOF機制恰當使用。
05
安裝配置方面:
熟悉PHP和各類第三方擴展的編譯安裝以及配置;
瞭解phpfpm的大部分配置選項和含義(如 max_requests/max_children/request_terminate_timeout之類的影響性能的配置),瞭解mod_php /fastcgi的區別和聯繫;對PHP面向對象的有深刻理解,好比依賴注入,路由運行原理,反射等等;
有作過TP/Laraver等框架的源碼分析,知道PHP主流框架內部實現機制和設計思想;熟練使用常規的設計模式來應用開發(抽象工廠/單例/觀察者/命令鏈/策略/適配器 等模式);
深刻理解MVC模式,本身也能夠去作到一些開發;熟悉PHP的各類調優方法,熟悉PHP大部分安全問題的解決處理;
熟悉基本的 PHP執行的機制原理(Zend引擎/擴展基本工做機制);
06
可以設計大部分中型系統的網站架構、數據庫、基本PHP框架選型;
性能測試、問題排查和處理等;
可以完成相似:瀏覽器 > CDN(Squid) > Nginx+PHP > 緩存 > 數據庫。
架構網站的基本設計開發維護;
可以支撐天天數百萬到千萬流量基本網站的開發維護工做;