redis實現點擊量瀏覽量,該如何處理
來源:互聯網
上載者:User
redis實現點擊量瀏覽量
業務描述
CMS文章瀏覽量(標題被載入量),點擊量統計(文章被點擊開的量)
以下是本人設計的統計業務,主要技術redis,nodejs,redis應用點擊量緩衝以減少資料庫壓力,nodejs通過非同步非阻塞機制實現CMS商務邏輯和統計功能區分
傳入參數cateid(分類id),articleid(文章id),sourceip(請求源ip)
一、儲存策略
1、按時間粒紋記錄
redis以hash進行儲存
HASH
KEY VALUE
time his
0 0
1 10
cateid_arvicleid_t . .
. .
. .
23 230
2、按來源統計
redis同樣以hash進行儲存,來源區分到省份
HASH
KEY VALUE
provinc his
HEBEI 0
HENAN 10
cateid_arvicleid_p . .
. .
. .
SHANDONG 230
二、資料同步機制
現在只想到通過linux計劃任務定時將redis資料同步到資料庫
三、快取資料到期機制
方案一 通過redis自動到期時間
此方案需要在資料同步機制晚一些執行,保證資料入庫後,清理到期緩衝,現在考慮同步在每日0時執行,那麼redis緩衝就需要設定24小時多一點
方案二 通過資料庫同步機制同時清除
此方案即把同步和清理緩衝做在一起,棄用redis到期機制
小弟希望各位大神給指出不妥和最佳化的地方
在10000線上使用者,1000並發的基礎上上述redis的儲存機制對記憶體壓力是否可行
同步機制和緩衝到期機制是否有更好的解決的方案
在此拜謝
------解決思路----------------------
KEY 最好設定成 2014_10_30. cateid_arvicleid_t形式
選擇方案二 通過資料庫同步機制同時清除 在每天淩晨的2~4點進行同步 因為指令碼1.同步指令碼可能失敗 2.資料量大的時候昨天的0時資料會被今天的0時覆蓋
號稱1秒10W請求的redis 不懼1000的並發