這幾天在偷偷做另外一個小東西時,用到 GAE 的 memcache API , 看資料發現 memcache API 是利用 memcached 模組修改而來。接下來就搜尋找到一系列文章提到 memcached 的應用,像是「 {|ihower.tw| blog } | 如何使用 memcached 做快取 」這篇除了提到應用外,還有提到 key 命名的問題。 不過我是想把快取的機制用在 goristock 中,goristock 在取股票資料的時候都必須連到證交所,有的時候不會只查詢一次,重複抓取沒有效率。另外 timeser.py 有一個 overall(),是跑整個上市股票的資料來分析買賣點的功能,可是這功能每次都要跑很久,每一檔股票都要再下載一次盤後交易資料,所以變得非常冗長又沒有效率。因此 新開 一個 branch 來實作這個功能,另外這 branch 是為 離線版本 來開發。 首先先安裝 memcached sudo apt-get install memcached 之後安裝 python-memcache sudo apt-get install python-memcache memcached 可以 設定一些細節 ,不過我這裡沒有做,單純的使用預設的設定。timeser.py 使用 goristock.py 的 class,所以修改了 goristock.__init__() 部份。 在 timeser.py 加入 preoverall() 來預載資料。 之後來跑 timeser.overall() 就飛快,抽換不同的分析條件就不用在重抓一次資料。 開發離線版本除了目前加入 memcache 外,還有一個方向就是 把資料儲存下來 ,不過這方面還在參考其他高手處理的方式,再慢慢實作加入。 不過現在還是努力寫一下論文好了,老闆在追趕了!