2011-09-13 75 views
0

我的access_log文件有幾條這樣的行...... 10.10.11.69 [13/Sep/2011:09:52:48 +0530]「GET /icons/blank.gif HTTP/1.1」304 - 「http://10.10.10.14/production-logs/no2-pg-wallet/」「Mozilla/5.0(Windows; U; Windows NT 6.1; en-US; rv:1.9.2.15)Gecko/20110303 Firefox/3.6。 15「查詢redis數據

我想將數據保存在redis數據庫中。我可以創建一個自動遞增的ID並保存IP,時間戳,頁面響應等,如下所示。

redis-cli incr next.news.id 

set news:2:IP "10.10.11.69" 

set news:2:timestamp "[13/Sep/2011:09:52:48 +0530]" 

set news:2:request "GET /icons/blank.gif HTTP/1.1" 

set news:2:response "304" 

set news:2:page "http://10.10.10.14/production-logs/" 

set news:2:browser "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15" 

我有2個問題:

1)如何自動存儲訪問日誌,以Redis的過程?

2)我如何知道頁面「production_logs」收到了多少點擊?

回答

1

如何自動化將access_log存儲到redis的過程?

您可能需要創建一些腳本/程序,這些腳本/程序會在每次創建新日誌條目時執行一組命令,或者在一段時間後批量執行此操作(例如計劃的作業)。

我如何知道頁面「production_logs」收到了多少次匹配?

您可以創建一個鍵,它將由一些前綴和頁面URL(或URL的哈希值),例如url:{url or hash here},並在此關鍵使用INCRBY命令。如果你想散列頁面URL,你可以將這些東西存儲在redis散列數據結構中,其中一個字段表示URL的名稱,另一個字段用於存儲使用HINCRBY命令的點擊數。