淺談淘寶客網站api緩存優化設計
來源:網賺120的空間 2012-01-12
網站之間內容同質化問題這個可以通過調用api時多增加一些自定義的特殊參數來解決,比如大家可以設置分類列表默認只調用傭金比例為萬分之231到萬分之5000,api里面是按照總數一萬來算傭金比例的,最小150,最多5000,這樣子您的分類列表頁面就跟別人不一樣了,即便程序大體一樣,獲得的數據也不一樣。列表數據不一樣,最終商品內容頁的數據也就不一樣了。
獲取淘寶客api數據時應該注意的問題:
一般一個頁面調用一個api就行了,最多2,3個,如果更多的話,一分鐘調用的次數很容易就超了,然后taobao后臺就會屏蔽你這個app_key 的調用大概1分鐘,這段時間你的網站如果不用緩存的話就都是空白了。解決方法是減少單頁面api調用頻率,同時增加api緩存以及設置獲取不到數據時自動調用老數據以避免頁面空白或者錯誤,還有設置當調用不到數據時不保存緩存,否則緩存就是空的,會造成在緩存時間內即便api調用到數據,頁面也是空白或者錯誤。
現在網絡上充斥著各種帶緩存的淘寶客api程序,大部分基于php版本的taoapi作為框架來寫的。taoapi是個好程序,通過文本來緩存api 數據,對于小型網站非常適用,甚至可以不用數據庫就可以建站,對于小型虛擬主機適應性非常好。但是對于稍微大點的網站,此種方法的弊端就開始顯露了。
一、稍微大點的api網站蜘蛛特別是baidu蜘蛛的爬行頻率非常高,一天可達幾萬設置更多,每天寫入幾萬個文本文件到空間或者vps或者服務器里面,時間一長不到一個月估計你的vps就掛了,不掛也會非常慢,空間是絕對掛,服務器湊合支撐,不過你等著做好更換服務器硬盤的準備。
二、緩存里面有很多空內容,即調不到api數據時也寫入緩存了,這個taoapi是沒做判斷的,造成很多頁面如果當時調用不到數據,然后在緩存有效期內頁面都是空白或者錯誤,用戶體驗極差,seo就更別說了。
三、接上面第二點,當第一次調用到有用的數據的時候,然后過了有效期,這時候突然由于各種因素,調用不到數據了,這時候taoapi會直接用空白的數據覆蓋有用的數據,于是循環第二點,頁面本來是有數據的,也沒了。
四、淘寶客api緩存終極解決方法:
A、用入庫來代替代替文本緩存,可以入各種常用數據庫,mysql,mssql等
B、入庫時的主鍵就用文本緩存的md5文件名,對taoapi保存緩存的地方稍微做下二次開發即可
C、入庫時的內容就用文本緩存的內容,即序列化的api數據結果數組
D、對不同調用方法設置不同的表,由于淘寶客的調用方法都是用英文的點來分割的,而mysql是不支持表名稱里面還有英文點的,可以用str_replace把英文點替換為英文下劃線。
E、如果數據量更大,大家可以考慮在用調用方法來分表的基礎上增加一個md5文件名的第一位來二次分表,由于md5值只有 0123456789abcdef這16個字符,這樣子調用方法的表又可以分為16個,如果更多,則可以用md5的前兩位來二次分表或者分不同數據庫,設置不同服務器來保存。
本文由AiWeTalk在線客服(www.hx6677.com)網絡推廣編輯
我的評論
登錄賬號: | 密碼: | 快速注冊 | 找回密碼 | ![]() |