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