資料中間平台(php,mysql,redis)

來源:互聯網
上載者:User

一.需求描述

    從 A (外部介面,http或socket介面等等) 取到xml格式資料,然後儲存到平台B(中間平台),對外部提供各種介面,返回JSON格式資料,平台C,D,E.....等等從平台B取資料,需求其實很簡單,在這隻是分析下中間可能的種種問題,怎麼解決,也希望大家多提寶貴意見。

其中從A取資料,每次期間較長,估計十幾分鐘左右,另外C,D,E等等外部平台對B串連比較頻繁,具體峰值現在還不好估算。

 

二.開發環境

    linux+php+apache+mysql+redis

 

三.設計思路

   1. 取資料模組,從A通過http介面取資料,進入mysql做持久化儲存,同時資料進入redis做緩衝,需要設計mysql表對應的redis結構。

       每次取資料時間較長,通過php長串連方式或php批處理方式處理,避免服務斷開。

       具體方式見php長串連處理整理:http://blog.csdn.net/lxzo123/archive/2011/04/28/6370715.aspx  

   2. 對外發布http介面,同時開關控制從redis取資料還是mysql取資料,聲明一點,該資料時效性較強,外部每次訪問都返回最新資料

        需要提供翻頁介面,預設外部串連redis緩衝,當redis中取不到對應資料才進行查詢mysql庫。

   3. redis資料刪除,由於資料每天都很多,需要對redis資料進行定期刪除一些比較舊的資料,可以按一定規則進行,比如幾天前的資料就刪除,或者redis中資料大於一定數目,就刪除最早的資料。

   4. 統計分析功能,如使用者串連數,等等。

 

四.具體實現描述

    1.mysql表結構設計,再此簡單設計代替,因為是公司項目。

       新聞欄目表 create table news_category (

                           id  integer, 新聞欄目ID

                           category varchar2新聞欄目名稱

                        );

 

       新聞結構表 create table news_info (

                            id  integer ,新聞ID

                            title varchar2 新聞標題

                            create date 新聞發生時間

                            categoryid 所屬欄目ID

                        );

 

      新聞內容表  create table news_content(

                           id integer 新聞ID

                           content varchar 新聞內容

                       );

      其它省略.

    

    2. redis對應結構體設計

        新聞欄目用hash儲存  key:   news:category    field: 欄目id      value:欄目名稱

        新聞ID用zset儲存,因為需要翻頁處理,list沒有提供返回index介面,處理翻頁不是特別完美(後續再說明),zset結構

                      key: news:id:index:[欄目ID]    score: (next:id:index自增為一個string)  member :新聞ID

        新聞結構體通過hast儲存 key: news:info:[欄目ID]:[新聞ID]    field: 對應表中欄位名稱   value:對應欄位值

      

 

先到此為止,改天繼續補充

                     

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.