1. Python框架
知乎目前使用的是Tornado框架。
參考鏈接:http://zh.wikipedia.org/wiki/Tornado
學(xué)習(xí)文檔:http://www.tornadoweb.cn/documentation
2. 數(shù)據(jù)庫
目前知乎采用的是MySQL作為主要的存儲,使用SqlAlchemy為ORM進(jìn)行數(shù)據(jù)庫的建?;蛘哂成?。
3. 緩存技術(shù)
知乎使用Redis來進(jìn)行緩存、隊列、計數(shù)或者任務(wù),使用Redis-Py為其連接客戶端。
Redis參考鏈接:http://redis.readthedocs.org/en/latest/index.html
Redis-Py參考鏈接:http://redis-py.readthedocs.org/en/latest/index.html
4. JavaScript框架
知乎使用Google的Closure Library作為前端的JavaScript框架。
5. 負(fù)載處理
目前知乎使用的是nginx做反向代理,使用nginx進(jìn)行靜態(tài)文件等大數(shù)量的I/O操作。
6. 圖片服務(wù)
知乎以前使用的是Upyun,現(xiàn)在已經(jīng)遷移到知乎自己所建的圖片服務(wù)上。
7. 郵件服務(wù)
知乎的郵件發(fā)送剛開始使用的是Amazon的SES,由于SES有些功能不能滿足需求,目前已經(jīng)轉(zhuǎn)換成Mailgun。
8. 消息系統(tǒng)
知乎消息系統(tǒng)依靠comet實現(xiàn)。
9. 虛擬環(huán)境
作為一個Python網(wǎng)站,知乎很有可能采用Virtualenv來解決純凈的包環(huán)境問題。
中文文檔地址:http://virtualenv-chinese-docs.readthedocs.org/en/latest/index.html
10. 代碼部署
常見的Python項目基本上采用Fabric進(jìn)行部署,不知道知乎到底用的是哪一個。
11. 搜索實現(xiàn)
知乎使用mmseg做中文分詞,對應(yīng)的詞根存在redis中作為key,數(shù)據(jù)庫id作為value,每個數(shù)據(jù)項是一個zset集合(有序集合)。查詢時根據(jù)key找到對應(yīng)的value。