java+redis實現高性能新聞點擊量更新
1、redis簡單介紹。它用來做高性能數據存取 是極好的。
2、實例:新聞點擊量。
1)每次刷新,我們並不一定要往數據庫里面立即更新數據
2)可以在redis里面做key-value存儲
3)設置一個閥值,當用戶刷新到一定數量時才更新到數據庫中
3、本課時在windows下部署。
4、linux部署 后面也會講到
課程地址 :http://edu.51cto.com/index.php?do=lesson&id=42104
API代碼:http://blog.csdn.net/kuanghongjiang/article/details/45061863
------------------------------------------------------------------------------------------
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過期機制 。
在每天凌晨的2~4點進行同步 因為腳本1.同步腳本可能失敗 2.數據量大的時候昨天的0時數據會被今天的0時覆蓋
號稱1秒10W請求的redis 不懼1000的並發