我的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数据库中。我可以创建一个自动递增的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"
我有两个问题:
1)如何自动化将access_log存储到redis的过程?
2)我怎么知道我收到多少次点击“production_logs”?
答案 0 :(得分:1)
如何自动化将access_log存储到redis的过程?
您可能需要创建一些脚本/程序,这些脚本/程序在每次创建新日志条目时都会执行您的命令集,或者在一段时间后批量执行此操作(例如,计划作业)。
如何知道我收到多少次点击“production_logs”?
您可以创建一个由一些前缀和页面url(或url的哈希值)组成的键,例如url:{url or hash here}
,并在此键上使用INCRBY
命令。如果你想要哈希页面url,你可以将这些东西存储在redis哈希数据结构中,其中一个字段表示url的名称,第二个字段用于使用HINCRBY
命令存储命中数。